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

model set redraws grid with rod

5guest162.158.167.543hsdmgtApr 8, 2024 1:03:55 PMlink

resources

index.zulzul<?page title="Grid Details" contentType="text/html;charset=UTF-8"?> <zk> <window border="none" height="100%" width="100%" apply="org.zkoss.bind.BindComposer" viewModel="@id('vm') @init('pkg$.GridDetails2VM')"> <vlayout hflex="1" vflex="1"> <hlayout> <button onClick="@command('update-row-2')">Update Second Row</button> <a href=".entry50">Go to Entry #50</a> </hlayout> <grid model="@load(vm.gridRows)" hflex="1" vflex="1"> <custom-attributes org.zkoss.zul.grid.rod="true"/> <columns> <column hflex="1">Rows</column> </columns> <template name="model" var="row"> <row> <cell> <a sclass="@load(vm.concat('entry', row.number))"> <label value="${self.uuid}"/> </a> </cell> </row> </template> </grid> </vlayout> </window> </zk>GridDetails2VM.javajavaimport java.util.Arrays; import java.util.List; import org.zkoss.bind.BindUtils; import org.zkoss.bind.annotation.Command; import org.zkoss.bind.annotation.Init; import org.zkoss.zul.ListModelList; import org.zkoss.zul.Row; public class GridDetails2VM { public class GridRow { private Integer number; private String name; public GridRow(String name) { this.name = name; } public String getName() { return name; } public void setName(String name) { this.name = name; } private List<String> details = Arrays.asList("One", "Two", "Three", "Four"); public List<String> getDetails() { return details; } public void setDetails(List<String> details) { this.details = details; } public Integer getNumber() { return number; } public void setNumber(Integer number) { this.number = number; } } private ListModelList<GridRow> gridRows = new ListModelList<>(); private List<String> details = Arrays.asList("One", "Two", "Three", "Four"); @Init public void init() { for (int i = 1; i < 100; i++) { GridRow gridRow = new GridRow("Entry #" + i); gridRow.setNumber(i); gridRows.add(gridRow); } } @Command("update-row-2") public void onForceUpdate() { /* * I replace a single row with the new updated object. * Since the <detail> contains bindings related only to its parent row * it should close only the current detail. right? * But instead the Grid collapses ALL detail views. */ GridRow row = new GridRow("Row updated"); gridRows.set(1, row); /* * I want to avoid the following code as my actual row object is quite complicated */ // row.name = "Row updated"; // row.setDetails(Arrays.asList("Five", "Six", "Seven")); // BindUtils.postNotifyChange(row, "name", "details"); } public ListModelList<GridRow> getGridRows() { return gridRows; } public void setGridRows(ListModelList<GridRow> gridRows) { this.gridRows = gridRows; } public List<String> getDetails() { return details; } public String concat(String str, int i) { return str + i; } }