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 :

LocalDate in datebox

15guest172.68.24.1903bb0ad1Mar 6, 2021 2:16:56 AMlink

LocalDate in datebox

14guest172.68.24.1903bb0ad1Mar 6, 2021 2:16:13 AMlink

LocalDate in datebox

13guest172.68.24.1903bb0ad1Mar 6, 2021 2:15:37 AMlink

LocalDate in datebox

12guest172.68.24.1903bb0ad1Mar 6, 2021 2:15:16 AMlink

scroll grid to last row after render

2guest162.158.203.92l2f86rMar 5, 2021 3:05:52 PMlink

scroll grid to last row after render

1guest162.158.203.92l2f86rMar 5, 2021 3:05:39 PMlink

Another new ZK fiddle

10MDuchemin172.69.33.221h7t36lMar 5, 2021 8:53:39 AMlink

Another new ZK fiddle

9MDuchemin172.69.33.221h7t36lMar 5, 2021 8:49:47 AMlink

Another new ZK fiddle

8MDuchemin172.69.33.221h7t36lMar 5, 2021 8:49:39 AMlink

Another new ZK fiddle

7MDuchemin172.69.33.221h7t36lMar 5, 2021 8:49:30 AMlink

ZK checkmark listbox

1MDuchemin108.162.215.121eqo704Jan 20, 2021 7:14:14 AMlink

resources

index.zulzul<zk xmlns:w="client"> <hlayout> <style> .z-listheader-checkable.z-listheader-partial .z-listheader-icon { display: block; line-height: 18px; } .z-listheader-checkable.z-listheader-partial .z-listheader-icon.z-icon-check:before { content: "\f068" !important; } </style> <script><![CDATA[ zk.afterLoad("zul.sel", function () { var _xListitem = {}; zk.override(zul.sel.Listitem.prototype, _xListitem, { _updHeaderCM: function (bRemove) { // B50-3322970: need to clear Listheader _check cache var box, lh; if (!this.isSelected() && (box = this.getListbox()) && box._headercm && box._multiple && box.$$selectAll != undefined && (lh = box.listhead) && (lh = lh.firstChild)) lh._checked = false; if ((box = this.getMeshWidget()) && box._headercm && box._multiple) { if (bRemove) { box._updHeaderCM(); return; } var fullzcls = zk.Widget.$(box._headercm).$s('checked'), partialzcls = zk.Widget.$(box._headercm).$s('partial'), $headercm = jq(box._headercm); // only update for user's selection or sharable model case (ZK-2969 test case) if (!this.isSelected() && (box.$$selectAll == undefined || this._userSelection)){ if(box.getSelectedItems().length > 0 && ! box._isAllSelected()){ $headercm.removeClass(fullzcls); $headercm.addClass(partialzcls); } if(box.getSelectedItems().length == 0){ $headercm.removeClass(partialzcls); } } else if (box.getSelectedItems().length > 0 && ! box._isAllSelected()){ $headercm.addClass(partialzcls); } else { $headercm.removeClass(partialzcls); if(!$headercm.hasClass(fullzcls)) box._updHeaderCM(); //update in batch since we have to examine one-by-one } } } }); var _xlistbox = {}; function _beforeChildKey(wgt, evt) { return zAu.processing() || wgt._shallIgnore(evt); } function _afterChildKey(evt) { switch (evt.data.keyCode) { case 33: //PgUp case 34: //PgDn case 38: //UP case 40: //DOWN case 37: //LEFT case 39: //RIGHT case 32: //SPACE case 36: //Home case 35: //End evt.stop(); return false; } return true; } zk.override(zul.sel.Listbox.prototype, _xlistbox, { _doKeyDown: function (evt) { //called by listener of this widget and ItemWidget if (_beforeChildKey(this, evt)) return true; var row = this._focusItem || this.getSelectedItem(), data = evt.data, shift = data.shiftKey, ctrl = (data.ctrlKey || data.metaKey || this.overrideCtrlSelect); if (shift && !this._multiple) shift = false; //OK to // F85-ZK-3507 if (this._startRow && !shift && this._multiple) this._startRow = null; else if (!this._startRow && shift) this._startRow = row; var endless = false, step, lastrow; // for test tool when browser is webkit if (zk.webkit && typeof data.keyCode == 'string') data.keyCode = zk.parseInt(data.keyCode); switch (data.keyCode) { case 33: //PgUp case 34: //PgDn var pgnl = this.paging || this._paginal; if (row && pgnl && !pgnl.isDisabled()) { // F60-ZK-715 var npg = this.getActivePage() + (data.keyCode == 33 ? -1 : 1); // TODO: concern ctrl if (npg > -1 && npg < this.getPageCount()) this.fire('onAcrossPage', { page: npg, offset: this.indexOfItem(row), shift: !shift || !this._multiple ? 0 : data.keyCode == 33 ? this.getPageSize() : -this.getPageSize() }); return; } step = this._visibleRows(); if (step == 0) step = this.getPageSize() || 20; if (data.keyCode == 33) step = -step; break; case 38: //UP case 40: //DOWN step = data.keyCode == 40 ? 1 : -1; break; case 32: //SPACE if (row) { if (this._multiple) this._toggleSelect(row, !row.isSelected(), evt); else this._select(row, evt); } break; case 36: //Home case 35: //End step = data.keyCode == 35 ? 1 : -1; endless = true; break; case 37: //LEFT if (row) this._doLeft(row); break; case 39: //RIGHT if (row) this._doRight(row); break; } if (step > 0 || (step < 0 && row)) { if (row && shift && !row.isDisabled() && row.isSelectable()) { // Bug ZK-1715: not select item if disabled. // F85-ZK-3507: shift + up/down: select item when moving outwards, // and deselect item when moving inwards this._toggleSelect(row, this._getToSelFlag(row, this._startRow, step), evt); } var nrow = row ? row.$n() : null; for (;;) { if (!nrow) { // no focused/selected item yet var w = this.getBodyWidgetIterator().next(); if (w) nrow = w.$n(); // F60-ZK-423: first row else return; // empty } else nrow = step > 0 ? nrow.nextSibling : nrow.previousSibling; if (!nrow) { // F60-ZK-715: across to next/previous page if any if (endless) break; // ignore Home/End key var pg = this.paging || this._paginal, pnum; if (pg && !pg.isDisabled()) { pnum = pg.getActivePage(); // TODO: concern ctrl if (step > 0 ? (pnum + 1 < pg.getPageCount()) : pnum > 0) { this.fire('onAcrossPage', { page: pnum + (step > 0 ? 1 : 0), offset: step > 0 ? 0 : -1, shift: !this._multiple || !shift ? 0 : step > 0 ? -1 : 1 }); if (this.$class.shallSyncSelInView) { this.$class.shallSyncSelInView[this.uuid] = true; } else { this.$class.shallSyncSelInView = {}; this.$class.shallSyncSelInView[this.uuid] = true; } } } break; } var r = zk.Widget.$(nrow); if (r.$instanceof(zul.sel.Treerow)) r = r.parent; if (!r.isDisabled() && r.isSelectable()) { // F85-ZK-3507 if (shift) this._toggleSelect(r, endless ? this._getToSelFlag(r, this._startRow, step) : true, evt); if (zk(nrow).isVisible()) { // ZK-2971: save last row even when pressing shift lastrow = r; if (!endless) { if (step > 0) --step; else ++step; if (step == 0) break; } } } } } if (lastrow) { if (!shift) { // ZK-2971: already handled in the previous code block, ignore shift if (ctrl) this._focus(lastrow); else this._select(lastrow, evt); } this._syncFocus(lastrow); var bar = this._scrollbar; if (bar) bar.scrollToElement(lastrow.$n()); else { // 1823278: key up until selection is out of view port, then it should scroll. zk(lastrow.$n()).scrollIntoView(this.ebody); // Bug #1823947 and #1823278 } } return _afterChildKey(evt); } }); }); ]]></script> <listbox hflex="1" checkmark="true" multiple="true" nonselectableTags="*" w:overrideCtrlSelect="true"> <listhead> <listheader label="name"/> <listheader label="gender"/> </listhead> <listitem onClick='Clients.log("Do something without selection")'> <listcell label="Mary" /> <listcell label="FEMALE" /> </listitem> <listitem onClick='Clients.log("Do something without selection")'> <listcell label="John" /> <listcell label="MALE" /> </listitem> <listitem onClick='Clients.log("Do something without selection")'> <listcell label="Jane" /> <listcell label="FEMALE" /> </listitem> </listbox> </hlayout> </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.*; public class TestComposer extends GenericForwardComposer{ public void doAfterCompose(Component comp) throws Exception { super.doAfterCompose(comp); } public void onClick$btn(Event e) throws InterruptedException{ Messagebox.show("Hi btn"); } }