Processing...

Suggested case list:

Using timer to refresh a grid

383guest172.69.33.12125nk0uiMay 7, 2020 7:23:47 AMlink

user model to move item to another listbox

120guest162.158.193.148d0n3krApr 2, 2020 5:28:28 AMlink

Disabled list item row passed to VM-1981

296fatih123160.83.36.13025nk0uiFeb 13, 2018 4:25:44 PMlink

Disabled list item row passed to VM-1981

295fatih123160.83.36.13025nk0uiFeb 13, 2018 4:25:16 PMlink

Disabled list item row passed to VM-1981

294fatih123160.83.36.13225nk0uiFeb 13, 2018 3:30:44 PMlink

grid sample with ListModel/RowRenderer

816guest80.82.2.1312vah9ajFeb 21, 2017 11:42:21 AMlink

grid sample with ListModel/RowRenderer

809guest175.98.113.1622vah9ajJan 26, 2017 9:19:33 AMlink

grid sample with ListModel/RowRenderer

196guest79.185.142.402vah9ajApr 26, 2014 10:53:57 PMlink

grid sample with ListModel/RowRenderer

195guest79.185.142.402vah9ajApr 26, 2014 10:53:54 PMlink

grid sample with ListModel/RowRenderer

194guest79.185.142.402vah9ajApr 26, 2014 10:53:51 PMlink

grid sample with ListModel/RowRenderer

193guest79.185.142.402vah9ajApr 26, 2014 10:53:48 PMlink

grid sample with ListModel/RowRenderer

192guest79.185.142.402vah9ajApr 26, 2014 10:53:44 PMlink

grid sample with ListModel/RowRenderer

191guest79.185.142.402vah9ajApr 26, 2014 10:53:40 PMlink

Hierarchy table without using ZK PE/EE

1aaknai151.28.135.2131s871daJul 29, 2013 11:02:46 PMlink

grid sample with ListModel/RowRenderer

128aaknai151.28.135.2132vah9ajJul 29, 2013 7:20:00 PMlink

user model to move item to another listbox

1TonyQ114.25.109.94d0n3krApr 21, 2012 10:43:27 AMlink

Using timer to refresh a grid

1TonyQ220.133.44.3725nk0uiFeb 17, 2012 3:17:34 AMlink

Fire a event from child iframe

1TonyQ220.133.44.372eupjotFeb 3, 2012 5:04:52 AMlink

Textbox input restriction sample

1TonyQ72.21.245.2431b3nlr0Dec 20, 2011 10:09:10 AMlink

Test web core taglib in ZUL

1TonyQ198.203.175.175ofqkemDec 17, 2011 3:36:08 AMlink

Latest 10 Fiddles :

constraint binding textbox

3guest172.68.151.16220peldaDec 5, 2025 5:08:19 PMlink

Another new ZK fiddle

2guest172.68.151.16320peldaDec 5, 2025 5:07:51 PMlink

Another new ZK fiddle

1guest172.68.151.16220peldaDec 5, 2025 5:07:32 PMlink

Another new ZK fiddle

1peggypeng172.71.154.99364f4neDec 5, 2025 9:24:31 AMlink

tooltip example

2guest104.22.23.13rc1ntoDec 4, 2025 2:23:45 PMlink

Another new ZK fiddle

1guest172.69.134.2277t7602Dec 4, 2025 1:40:46 PMlink

Another new ZK fiddle

1peggypeng104.22.17.1802df6e3oDec 4, 2025 8:41:29 AMlink

onClose

1peggypeng172.68.87.248j8kd8aDec 3, 2025 4:10:26 AMlink

Another new ZK fiddle

1peggypeng172.69.134.2271rm7f4eNov 26, 2025 3:31:24 AMlink

ZK-5912-Suggestion

2rebeccalai104.22.20.1442qrmiiuNov 26, 2025 2:07:15 AMlink

Add Customer Test

6guest162.158.163.513lhsbatJan 15, 2023 11:31:15 AMlink

resources

index.zulzul<zk> <window border="normal" title="Add Biodata" apply="pkg$.TestComposer"> <grid width="100%"> <columns> <column label="" width="23%"/> <column label="" width="2%"/> <column label="" width="23%"/> <column label="" width="2%"/> <column label="" width="23%"/> <column label="" width="2%"/> <column label="" width="23%"/> <column label="" width="2%"/> </columns> <rows> <row valign="top"> <cell> <vbox hflex="1"> <hbox> <label value="First Name"/> <label value="*" style="color:red;"/> </hbox> <vbox hflex="1"> <textbox id="txtFirstName" maxlength="30" hflex="1"/> <label id="errFirstName" visible="false" value="Fisrt name is mandatory" style="font-style: italic; color:red;"/> </vbox> </vbox> </cell> <cell></cell> <cell> <vbox hflex="1"> <hbox> <label value="Middle Name"/> </hbox> </vbox> <vbox hflex="1"> <textbox id="txtMiddleName" maxlength="30" hflex="1"/> </vbox> </cell> <cell></cell> <cell> <vbox> <hbox> <label value="First Name"/> <label value="*" style="color:red;"/> </hbox> </vbox> </cell> <cell></cell> <cell> <vbox> <hbox> <label value="First Name"/> <label value="*" style="color:red;"/> </hbox> </vbox> </cell> <cell></cell> </row> </rows> </grid> <hbox> <vbox width="150px"> <hbox> <label value="First Name"/> <label value="*" style="color:red;"/> </hbox> </vbox> <separator width="10px"/> <vbox width="150px"> <hbox> <label value="Middle Name"/> </hbox> </vbox> <separator width="10px"/> <vbox width="150px"> <hbox> <label value="Last Name"/> <label value="*" style="color:red;"/> </hbox> <textbox id="txtLastName" maxlength="30"/> <label id="errLastName" visible="false" value="Last name is mandatory" style="font-style: italic; color:red;"/> </vbox> <separator width="10px"/> <vbox width="150px"> <hbox> <label value="City"/> <label value="*" style="color:red;"/> </hbox> <listbox id="cmbCity" mold="select"> <listitem label="Please Select" selected="true"/> </listbox> <label id="errCity" visible="false" value="City is mandatory" style="font-style: italic; color:red;"/> </vbox> <separator width="10px"/> <vbox> <hbox> <label value="Date of Birth"/> <label value="*" style="color:red;"/> </hbox> <datebox id="dtbBirthDate" format="dd-MM-yyyy"/> <label id="errBirthDate" visible="false" value="Birth date is mandatory" style="font-style: italic; color:red;"/> </vbox> <separator width="10px"/> <vbox> <hbox> <label value="Address"/> <label value="*" style="color:red;"/> </hbox> <textbox id="txtAddress" maxlength="200" multiline="true" rows="5"/> <label id="errAddress" visible="false" value="Address is mandatory" style="font-style: italic; color:red;"/> </vbox> </hbox> <vbox> <hbox> <label value="Gender"/> <label value="*" style="color:red;"/> </hbox> <radiogroup id="rdgGender"> <radio id="rdMale" value="Male" label="Male"/> <space width="10px"/> <radio id="rdFemale" value="Female" label="Female"/> </radiogroup> <label id="errGender" visible="false" value="Gender is mandatory" style="font-style: italic; color:red;"/> </vbox> <separator height="10px"/> <vbox> <hbox> <label value="Hobby"/> <label value="*" style="color:red;"/> </hbox> <hbox> <checkbox id="chkRead" value="Reading" label="Reading"/> <checkbox id="chkWrite" value="Writing" label="Writing"/> <checkbox id="chkTravel" value="Travel" label="Travel"/> <checkbox id="chkOther" value="Other" label="Other"/> </hbox> <label id="errHobby" visible="false" value="Hobby is mandatory" style="font-style: italic; color:red;"/> </vbox> <separator height="10px"/> <hbox spacing="5px"> <button id="btnCancel" label="Reset" /> <button id="btnSubmit" label="Add" /> </hbox> <separator height="10px"/> <grid id="gridData"> <columns sizable="true"> <column label="First Name"/> <column label="Middle Name"/> <column label="Last Name"/> <column label="Gender"/> <column label="City"/> <column label="Date"/> </columns> </grid> </window> </zk> TestComposer.javajavaimport org.zkoss.zk.ui.*; import org.zkoss.zk.ui.event.*; import org.zkoss.zk.ui.util.*; import org.zkoss.zk.ui.ext.*; import org.zkoss.zk.au.*; import org.zkoss.zk.au.out.*; import org.zkoss.zul.*; import java.util.*; public class TestComposer extends GenericForwardComposer{ private Textbox txtFirstName; private Textbox txtMiddleName; private Textbox txtLastName; private Textbox txtAddress; private Listbox cmbCity; private Datebox dtbBirthDate; private Radiogroup rdgGender; private Checkbox chkRead, chkWrite, chkTravel, chkOther; private Label errFirstName; private Label errLastName; private Label errAddress; private Label errCity; private Label errGender; private Label errHobby; private Label errBirthDate; private Grid gridData; private ListModelList modelList; public void doAfterCompose(Component comp) throws Exception { super.doAfterCompose(comp); applyCity(); modelList = new ListModelList(); gridData.setModel(modelList); gridData.setRowRenderer(createRowRenderer()); } private void applyCity() { List<String> cities = Arrays.asList("Jakarta", "Bekasi", "Tangerang", "Bogor", "Depok"); for (String city : cities) { Listitem item = new Listitem(city, city); item.setParent(cmbCity); } } private boolean doValidate() { boolean flag = true; errFirstName.setVisible(false); if (txtFirstName.getValue().isEmpty()) { errFirstName.setVisible(true); flag = false; } errLastName.setVisible(false); if (txtLastName.getValue().isEmpty()) { errLastName.setVisible(true); flag = false; } errAddress.setVisible(false); if (txtAddress.getValue().isEmpty()) { errAddress.setVisible(true); flag = false; } errGender.setVisible(false); if (rdgGender.getSelectedIndex() < 0) { errGender.setVisible(true); flag = false; } errCity.setVisible(false); if (cmbCity.getSelectedIndex() <= 0) { errCity.setVisible(true); flag = false; } errBirthDate.setVisible(false); if (dtbBirthDate.getValue() == null) { errBirthDate.setVisible(true); flag = false; } errHobby.setVisible(false); if (!chkRead.isChecked() && !chkWrite.isChecked() && !chkTravel.isChecked() && !chkOther.isChecked()) { errHobby.setVisible(true); flag = false; } return flag; } private RowRenderer createRowRenderer() { return new RowRenderer() { public void render(Row row, Object data, int i) throws Exception { final Biodata biodata = (Biodata)data; new Label(biodata.getFirstName()).setParent(row); new Label(biodata.getMiddleName()).setParent(row); new Label(biodata.getLastName()).setParent(row); new Label(biodata.getGender()).setParent(row); new Label(biodata.getBirthPlace()).setParent(row); new Label(biodata.getBirthDate().toString()).setParent(row); } }; } public void onClick$btnSubmit(Event e) throws InterruptedException{ if (doValidate()) { Biodata biodata = new Biodata(); biodata.setFirstName(txtFirstName.getValue()); biodata.setMiddleName(txtMiddleName.getValue()); biodata.setLastName(txtLastName.getValue()); biodata.setGender((String)rdgGender.getSelectedItem().getValue()); biodata.setBirthPlace((String)cmbCity.getSelectedItem().getValue()); biodata.setBirthDate(dtbBirthDate.getValue()); modelList.add(biodata); } } } Biodata.javajavaimport java.util.*; public class Biodata { private String firstName; private String middleName; private String lastName; private Date birthDate; private String birthPlace; private String gender; public void setFirstName(String firstName) { this.firstName = firstName; } public String getFirstName() { return firstName; } public String getMiddleName() { return middleName; } public void setMiddleName(String middleName) { this.middleName = middleName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } public Date getBirthDate() { return birthDate; } public void setBirthDate(Date birthDate) { this.birthDate = birthDate; } public String getBirthPlace() { return birthPlace; } public void setBirthPlace(String birthPlace) { this.birthPlace = birthPlace; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } }