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

HPaging Grid

8guest203.83.75.34399ureSep 18, 2012 3:47:47 AMlink

resources

index.zulzul<?component name="hPagingGrid" macroURI="hPagingGrid.zul" class="pkg$.HPagingGrid"?> <zk> <window title="hPagingGrid" border="normal" width="500px" height="500px" apply="pkg$.TestComposer"> <hPagingGrid model="${model}" titles="${titles}" vflex="1" /> </window> </zk>TestComposer.javajavaimport java.util.ArrayList; import java.util.List; import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.util.GenericForwardComposer; import org.zkoss.zul.ListModelList; public class TestComposer extends GenericForwardComposer { @Override public void doBeforeComposeChildren(Component comp) throws Exception { super.doBeforeComposeChildren(comp); int colLen = 1004; String[] titles = new String[colLen]; for(int i = 0; i < colLen; i++) titles[i] = "Column " + i; List list = new ArrayList(); for(int i = 0; i < 300; i++) { String[] s = new String[colLen]; for(int j = 0; j < colLen; j++) s[j] = "item " + i + j; list.add(s); } comp.setAttribute("model", new ListModelList(list)); comp.setAttribute("titles", titles); } }hPagingGrid.zulzul<div hflex="1" vflex="1"> <toolbar> <intbox id="intbox" width="50px" value="0" forward="onChange=onUpdatePage,onOK=onUpdatePage"/> <toolbarbutton label="prev" forward="onMove(-1)"/> <toolbarbutton label="next" forward="onMove(1)"/> </toolbar> <grid id="grid" hflex="1" vflex="1"> <columns id="columns"/> </grid> </div>HPagingGrid.javajavaimport org.zkoss.zk.ui.Components; import org.zkoss.zk.ui.HtmlMacroComponent; import org.zkoss.zk.ui.WrongValueException; import org.zkoss.zk.ui.event.ForwardEvent; import org.zkoss.zul.Column; import org.zkoss.zul.Columns; import org.zkoss.zul.Grid; import org.zkoss.zul.Intbox; import org.zkoss.zul.Label; import org.zkoss.zul.ListModel; import org.zkoss.zul.Row; import org.zkoss.zul.RowRenderer; public class HPagingGrid extends HtmlMacroComponent { private int _pgsz = 5; private int startPos = 0; private String[] titles; private Grid grid; private Columns columns; private Intbox intbox; private ListModel model; public HPagingGrid() { setEnclosingTag("div"); } @Override public void afterCompose() { super.afterCompose(); Components.wireVariables(this, this); Components.addForwards(this, this); syncContent(); } public int getActivePage() { return intbox != null ? intbox.getValue(): 0; } public void setActivePage(int pg) throws WrongValueException { if (pg < 0) throw new WrongValueException("Unable to set active page to "+pg); if (intbox.getValue() != pg) { intbox.setValue(pg); syncContent(); } } public int getPageSize() { return _pgsz; } public void setPageSize(int size) throws WrongValueException { if (size <= 0) throw new WrongValueException("positive only"); if (_pgsz != size) _pgsz = size; } public void setTitles(String[] titles) { this.titles = titles; } public String[] getTitles() { return titles; } public void setModel(ListModel model) { this.model = model; if (grid != null) grid.setModel(model); } public ListModel getModel() { return model; } private void syncTitles() { if (titles == null || columns == null) return; columns.getChildren().clear(); for (int i = 0, j = startPos, len = titles.length; len > j && i < _pgsz; j = startPos + ++i) columns.appendChild(new Column(titles[j])); } private void syncContent() { if (model == null || grid == null) return; if (grid.getModel() != model) grid.setModel(model); startPos = intbox.getValue() * _pgsz; syncTitles(); grid.setRowRenderer(new PagingRowRenderer()); } public void onMove(ForwardEvent event) { int i = Integer.parseInt(event.getData().toString()); int val = checkVal(intbox.getValue() + i); if (val != intbox.getValue()) { intbox.setValue(val); syncContent(); } } public void onUpdatePage() { int val = checkVal(intbox.getValue()); if (val != intbox.getValue()) intbox.setValue(val); syncContent(); } private int checkVal(int val) { if (val < 0) return 0; int len = columnLength() - 1; if (len > 0 && val * _pgsz > len) { len++; return len / _pgsz - (len % _pgsz == 0 ? 1: 0); } return val; } private int columnLength() { if (model != null) { Object o = model.getElementAt(0); if (o != null) return ((String[])o).length; } return 0; } private class PagingRowRenderer implements RowRenderer { public void render(Row row, Object obj) throws Exception { String[] s = (String[]) obj; for (int i = 0, len = s.length, j = startPos; len > j && i < _pgsz; j = startPos + ++i) row.appendChild(new Label(s[j])); } } }