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

ZK-RWD-with-Grid-and-detail

2Mduchemin114.34.173.1992mvqdbbJun 27, 2016 9:12:24 AMlink

resources

index.zulzul<zk> <window viewModel="@id('vm')@init('pkg$.MyViewModel')"> <vlayout> <hlayout> <label value="template in use: " /> <label value="@load(vm.currentTemplate)" /> </hlayout> <grid model="@load(vm.myModel) @template(vm.currentTemplate)"> <columns> <choose> <when test='@load(vm.currentTemplate eq "8cols")'> <column label="First Name" /> <column label="Last Name" /> <column label="Position" /> <column label="Office" /> <column label="Age" /> <column label="Start Date" /> <column label="Salary" /> <column label="Extn." /> </when> <when test='@load(vm.currentTemplate eq "6cols")'> <column width="60px" label="Details" /> <column label="First Name" /> <column label="Last Name" /> <column label="Position" /> <column label="Office" /> <column label="Age" /> <column label="Start Date" /> </when> <when test='@load(vm.currentTemplate eq "4cols")'> <column width="60px" label="Details" /> <column label="First Name" /> <column label="Last Name" /> <column label="Position" /> <column label="Office" /> </when> <when test='@load(vm.currentTemplate eq "2cols")'> <column width="60px" label="Details" /> <column label="First Name" /> <column label="Last Name" /> </when> </choose> </columns> <template name="8cols"> <row> <label value="@init(each.firstName)" /> <label value="@init(each.lastName)" /> <label value="@init(each.position)" /> <label value="@init(each.office)" /> <label value="@init(each.age)" /> <label value="@init(each.startDate)" /> <label value="@init(each.salary)" /> <label value="@init(each.extension)" /> </row> </template> <template name="6cols"> <row> <detail> <vlayout> <hlayout> <label value="Salary: " /> <label value="@init(each.salary)" /> </hlayout> <hlayout> <label value="Extn. " /> <label value="@init(each.extension)" /> </hlayout> </vlayout> </detail> <label value="@init(each.firstName)" /> <label value="@init(each.lastName)" /> <label value="@init(each.position)" /> <label value="@init(each.office)" /> <label value="@init(each.age)" /> <label value="@init(each.startDate)" /> </row> </template> <template name="4cols"> <row> <detail> <vlayout> <hlayout> <label value="Age: " /> <label value="@init(each.age)" /> </hlayout> <hlayout> <label value="Start Date: " /> <label value="@init(each.startDate)" /> </hlayout> <hlayout> <label value="Salary: " /> <label value="@init(each.salary)" /> </hlayout> <hlayout> <label value="Extn. " /> <label value="@init(each.extension)" /> </hlayout> </vlayout> </detail> <label value="@init(each.firstName)" /> <label value="@init(each.lastName)" /> <label value="@init(each.position)" /> <label value="@init(each.office)" /> </row> </template> <template name="2cols"> <row> <detail> <vlayout> <hlayout> <label value="Position: " /> <label value="@init(each.position)" /> </hlayout> <hlayout> <label value="Office: " /> <label value="@init(each.office)" /> </hlayout> <hlayout> <label value="Age: " /> <label value="@init(each.age)" /> </hlayout> <hlayout> <label value="Start Date: " /> <label value="@init(each.startDate)" /> </hlayout> <hlayout> <label value="Salary: " /> <label value="@init(each.salary)" /> </hlayout> <hlayout> <label value="Extn. " /> <label value="@init(each.extension)" /> </hlayout> </vlayout> </detail> <label value="@init(each.firstName)" /> <label value="@init(each.lastName)" /> </row> </template> </grid> </vlayout> </window> </zk>EmployeeBean.javajava import java.math.BigDecimal; public class EmployeeBean { private String firstName; private String lastName; private String position; private String office; private int age; private String startDate; private BigDecimal salary; private int extension; public String getFirstName() { return firstName; } public void setFirstName(String firstName) { this.firstName = firstName; } public String getLastName() { return lastName; } public void setLastName(String lastName) { this.lastName = lastName; } public String getPosition() { return position; } public void setPosition(String position) { this.position = position; } public String getOffice() { return office; } public void setOffice(String office) { this.office = office; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getStartDate() { return startDate; } public void setStartDate(String startDate) { this.startDate = startDate; } public BigDecimal getSalary() { return salary; } public void setSalary(BigDecimal salary) { this.salary = salary; } public int getExtension() { return extension; } public void setExtension(int extension) { this.extension = extension; } public EmployeeBean(String firstName, String lastName, String position, String office, int age, String startDate, BigDecimal salary, int extension) { this.firstName = firstName; this.lastName = lastName; this.position = position; this.office = office; this.age = age; this.startDate = startDate; this.salary = salary; this.extension = extension; } } MyViewModel.javajava import java.math.BigDecimal; import org.zkoss.bind.annotation.Init; import org.zkoss.bind.annotation.MatchMedia; import org.zkoss.bind.annotation.NotifyChange; import org.zkoss.zul.ListModelList; public class MyViewModel { private ListModelList<EmployeeBean> myModel = new ListModelList<EmployeeBean>(); private String currentTemplate = "8cols"; @Init public void init(){ myModel.add(new EmployeeBean("Airi", "Satou", "Accountant", "Tokyo", 33, "2008/11/28", new BigDecimal(162700), 5407)); myModel.add(new EmployeeBean("Angelica", "Ramos", "Chief Executive Officer (CEO)", "London", 47, "2009/10/09", new BigDecimal(1200000), 5797)); myModel.add(new EmployeeBean("Asthon", "Cox", "Junior Technical Author", "San Francisco", 66, "2009/01/12", new BigDecimal(86000), 1562)); myModel.add(new EmployeeBean("Bradley", "Greer", "Software Engineer", "London", 41, "2012/10/13", new BigDecimal(132000), 2558)); } @MatchMedia("all and (min-width : 1024px)") @NotifyChange({"currentTemplate", "columnModel"}) public void set8Col(){ currentTemplate = "8cols"; } @MatchMedia("all and (min-width : 800px) and (max-width : 1023px)") @NotifyChange({"currentTemplate", "columnModel"}) public void set6Col(){ currentTemplate = "6cols"; } @MatchMedia("all and (min-width : 600px) and (max-width : 799px)") @NotifyChange({"currentTemplate", "columnModel"}) public void set4Col(){ currentTemplate = "4cols"; } @MatchMedia("all and (max-width : 599px)") @NotifyChange({"currentTemplate", "columnModel"}) public void set2Col(){ currentTemplate = "2cols"; } public ListModelList<EmployeeBean> getMyModel() { return myModel; } public void setMyModel(ListModelList<EmployeeBean> myModel) { this.myModel = myModel; } public String getCurrentTemplate() { return currentTemplate; } public void setCurrentTemplate(String currentTemplate) { this.currentTemplate = currentTemplate; } }