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

Test Navbar

1guest172.69.130.223228cs04May 30, 2024 11:13:09 AMlink

resources

index.zulzul<zk> <style src="style.css"/> <zscript><![CDATA[ List files = new ArrayList(); for (int i = 1; i <= 5; i++) { files.add("Datei " + i); } ]]></zscript> <div apply="pkg$.TestComposer" width="auto" height="auto" > <div style="display: inline;"> <div class="menu"> <checkbox label="Menu" checked="false"> <attribute name="onCheck"><![CDATA[ navBar.setCollapsed(event.isChecked()); ]]></attribute> </checkbox> </div> <div class="user"> <div class="circle"> <div class="userCircle">NR</div> </div> <div class="userInfo"> <label value="Nils R."></label> </div> <div class="userSettings"> <button class="userSettingsButton" label="Logout | " style="margin-left: -50px;"></button> </div> <div class="userSettings" style="margin-left: 0px;"> <button class="userSettingsButton" label ="Einstellungen" style="margin-left: -5px"></button> </div> </div> <navbar orient="vertical" height="1080px" id="navBar" collapsed="true"> <navitem label="Dashboard" iconSclass="z-icon-home" /> <navitem label="Suche" iconSclass="z-icon-search" /> <navitem label="Favoriten" iconSclass="z-icon-heart" /> <nav label="Datenräume" class="navDatenraum" iconSclass="z-icon-cloud"> <navitem label="Meine Dateien" iconSclass="z-icon-user"/> <navitem label="Projekt xyz" iconSclass="z-icon-random"/> <navitem label="Vertrieb" iconSclass="z-icon-shopping-cart"/> <navitem class="showMoreButton" label="Verwalten" style="text-decoration: underline;"/> </nav> <navitem label="Für mich freigegeben" iconSclass="z-icon-archive" /> <navitem label="Postbox" iconSclass="z-icon-envelope" /> <navitem label="Papierkorb" iconSclass="z-icon-trash-o" /> <navitem label="Kontakte" iconSclass="z-icon-group"/> <nav label="Administration" iconSclass="z-icon-cogs"> <navitem label="Benutzer verwalten" iconSclass=""/> <navitem label="Gruppen verwalten" iconSclass=""/> <navitem label="Einstellungen" iconSclass=""/> <navitem label="Wartungsmodus" iconSclass=""/> </nav> <navitem label="Info" iconSclass="z-icon-info-circle"/> </navbar> </div> <div width="85%" height="50px" style="background-color:blue;display:inline-block;"></div> <borderlayout height="1080px" width="85%" style="display:inline-block;top:50px;"> <west title="Meine Dateien" class="verzeichnisbaum" border="none" size="15%" collapsible="true" open="false" splittable="true"> <div height="100%"> <div class="infoText"> <label value="Info-Text u. Settings des Datenraums" /> </div> <div class="datenraum"> <label value="Meine Dateien"/> </div> <div style="margin: 10px 25px"> <label value="Ordner 1"/><separator/> <label value="Ordner 1.1"/><separator/> <div class="folderOpen"> <label value="> xyza" style="font-weight: bold; content: \f07c"/><separator/></div> <label value="Ordner 3"/><separator/> <label value="Testordner"/><separator/> <label value="Ordner 123"/><separator/> <label value="Ordner abc"/><separator/> <label value="Ordner Test"/> </div> <div height="100%" class="verzButtons" style="display: none"> <button class="verzeichnisbaumButton" label="Berechtigung" iconSclass="z-icon-group"/> <button class="verzeichnisbaumButton" label="Einstellungen" iconSclass="z-icon-cog"/> </div> </div> </west> <center border="0"> <borderlayout> <north height="16%" border="0"> <div> <div class="toolbar" width="30%"> <button class="selectedFolder" label="xyza" iconSclass="z-icon-folder-o" style=""/> <div style="margin-left: 68px; margin-top: -40px;"><label class="directoryLabel" value="Meine Dateien: xyza" /></div> <separator/><separator/> <separator/><separator/> <button class="uploadButton" label="Datei hochladen" iconSclass="z-icon-cloud-upload"/> <button class="toolbarButton" label="Anlegen"/> <button class="breadcrumb" label="..."/> </div> <div style="width: 20%; display: inline-block; vertical-align: top; margin-top: 10px;"> <div class="circle"> <div style="padding-left: 4px; padding-top: 14px; font-weight: bold">public</div> </div> <div class="circle"> <div class="userCircle">NR</div> </div> <div class="circle"> <div class="userCircle">WK</div> </div> <div class="circle"> <div class="userCircle">+3</div> </div> </div> <div style="width: 8%; display: inline-block; vertical-align: top; margin-top: 10px; float: right"> <listbox mold="select" style="text-align-last: center; width: 120px;"> <listitem label="Ansicht" selected="true"/> <listitem label="Listenansicht" /> <listitem label="Kachelansicht" /> </listbox> </div> </div> </north> <center border="none" class="contentTable" > <listbox id="listbox" width="100%" nonselectableTags="" style="border:1px solid transparent" checkmark="true" multiple="true" > <listhead sizable="true" > <listheader label="Name" width="10%" sort="auto"/> <listheader label="Typ" width="10%" sort="auto"/> <listheader label="Größe" width="10%" sort="auto"/> <listheader label="Letzte Änderung" width="10%" sort="auto"/> <listheader label="Ersteller" width="15%" sort="auto"/> </listhead> <zk forEach="${files}"> <listitem> <listcell label="${each}"></listcell> <listcell> <label value="Datei"/> </listcell> <listcell> <label value="10MB"/> </listcell> <listcell> <label value="26.10.2019 10:13"/> </listcell> <listcell> <label value="Pan-Pumuckel, Peter-Parker"/> </listcell> </listitem> </zk> </listbox> </center> <east size="22%" title="Datei 1" collapsible="true"> <div height="100%"> <div> <textbox width="90%" style="margin-top: 20px; margin-bottom: 20px; margin-left: 20px;" rows="1" value="https://test.system/rest/share/34gh5j423a213"></textbox> <div class="container"><label value="Attribute"></label></div> <div style="margin-top: 10px;"><label style="margin-right: 15px;margin-left: 20px;" value="Virenprüfung"/><checkbox mold="default" checked="true" style="margin-right: 20px;" disabled="true"/><label value="19.05.2019"/><separator/> <label style="margin-right: 25px;margin-left: 20px;" value="Öffentlich"/><checkbox style="margin-left: 5px;" mold="switch" checked="false" /></div><separator/><separator/><separator/> <div class="container"><label value="Persönliche Einstellungen"></label></div> <div style="margin-top: 10px; margin-left: 20px;" class="settingsBox"><label value="Erinnerung" style="margin-right: 7px;"/> <checkbox mold="switch" checked="true" style="margin-right: 10px;"/><label value="23.05.2019"/></div><separator/> <label width="80px" style="margin-left: 20px;" value="Beobachten"/> <checkbox mold="switch" checked="false"/><separator/> <label style="margin-right: 22px;margin-left: 20px;" value="Favoriten"/> <checkbox mold="switch" checked="false"/><separator/><separator/><separator/> <div class="container"><label value="Aktionen"></label></div> <button class="actionButton" label="Herunterladen"/> <button class="actionButton" label="Öffnen"/> <button class="actionButton" label="Link senden"/> <button class="actionButton" label="Kopieren"/> <button class="actionButton" label="Verschieben"/> <button class="actionButton" label="Umbennen"/> <button class="actionButton" label="Protokoll anzeigen"/> <button class="actionButton" label="Versionen anzeigen"/> </div> <div class="showMore" width="100%" height="5%"> <button width="100%" height="100%" class="showMoreButton" label="mehr ..." /> </div> </div> </east> </borderlayout> </center> </borderlayout> </div> </zk> TestComposer.javajava import java.util.List; import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.event.DropEvent; import org.zkoss.zk.ui.event.Events; import org.zkoss.zk.ui.select.SelectorComposer; import org.zkoss.zk.ui.select.annotation.Listen; import org.zkoss.zk.ui.select.annotation.Wire; import org.zkoss.zkmax.zul.Navbar; import org.zkoss.zkmax.zul.Navitem; public class TestComposer extends SelectorComposer<Component>{ @Wire Navbar navBar; public void doAfterCompose(Component comp) throws Exception { super.doAfterCompose(comp); } @Listen("onDrop = navitem") public void onNavItemDrop(DropEvent event) { final Navitem dragged = (Navitem) event.getDragged(); final Navitem dropped = (Navitem) event.getTarget(); final List<Component> list = navBar.getChildren(); for (final Component component : list){ if(component instanceof Navitem){ final Navitem currentNavitem = (Navitem) component; if(currentNavitem.equals(dropped)){ navBar.insertBefore(dragged, dropped); return; } else if(currentNavitem.equals(dragged)){ navBar.insertBefore(dropped, dragged); return; } } } } } style.csscssbody *:not([class*="z-icon-"]) { font-family:Arial Nova light, Arial light,Helvetica,sans-serif;; } body, .z-window-content { padding: 0; } .z-navitem-content, .z-nav-content { color: white; font-size: 18px; padding: 6px 20px; } .z-nav .z-navitem-content { padding: 6px 18px; background: #d3d3d3; } .navDatenraum .z-navitem-content { padding: 6px 40px; color: black; background: #d3d3d3; } .z-navbar .showMoreButton span { text-decoration: underline; } .z-navitem-text-popup, .z-nav-popup * { color: black; } .z-navbar .z-navitem-selected .z-navitem-content { color: black; background: white; } .z-listbox-header { background: none; } .z-listheader { background: white; border-bottom: #f8f8f8; border-left: #f8f8f8; } .z-listheader-hover .z-listheader-content:active { color: black; background: none !important; } .z-listheader-content { color: black !important; font-weight: bold; border-bottom: 3px solid rgba(15, 139, 240, 0.4); } .z-listheader-content .z-listheader-sorticon { color: black; } .z-listheader:nth-child(5) { min-width: 250px; } .z-navbar { display:inline-block; vertical-align: top; position: relative !important; border: none !important; background: #2C4766; padding-top: 135px; } .z-nav-text, .z-navitem-text { margin-left: 4px; } .z-navbar-vertical li, .z-nav-popup li { margin: 4px 0; } .z-nav-content:hover, .z-navitem-content:hover { background: white; color: black; } .menu { position: absolute; z-index: 9; padding: 15px 25px; } .menu .z-checkbox input{ display: none; } .menu .z-checkbox-content:before { content: "\f0c9"; padding-right: 10px; font: 18px/1 FontAwesome; float: left; color: white; } .menu .z-checkbox-content { color:transparent; } .user { position: absolute; z-index: 9; margin: 60px 5px; } .toolbarButton { background: none !important; color: black !important; box-shadow: none; margin: 10px; } .toolbarButton:before { content: "\f055"; padding-right: 10px; font: 18px/1 FontAwesome; float: left; } .toolbarButton:after { content: "\f107"; padding-left: 10px; font: 18px/1 FontAwesome; } .breadcrumb { background: none !important; color: black !important; box-shadow: none; font-weight: bold; vertical-align: top; margin-top: 5px; font-size: 20px; } .uploadButton { padding: 8px 20px !important; } .uploadButton:hover { color: white !important; } .uploadButton i { padding-right: 5px; } button { margin: 8px; padding: 4px !important; background-color: #00A5E1 !important; } .z-button:hover { color: black; } .z-button:active { background: #e0f2ff !important; color: black; } input[type="checkbox"][disabled], input[type="checkbox"] { font-family: ZK85Icons, FontAwesome; } .z-checkbox-switch { transform:scale(0.8, 0.8) } .actionButton { background: none !important; color: black; width:100%; margin-bottom: 0px; margin-top: 5px; border: none; box-shadow: none; } .actionButton:hover, .toolbarButton:hover, .breadcrumb:hover { background: #e0f2ff !important; } .circle { width: 50px; height: 50px; border-radius: 25px; background: white; border: 1px solid lightgrey; margin: 4px; display: inline-block; } .userCircle { padding-top: 14px; padding-left: 12px; } .userInfo { display: inline; margin-left: 6px; vertical-align: top; color: white } .userInfo .z-label { font-weight: bold; } .userSettings { margin-left: 2px; font-size: 10px; display: inline; } .userSettingsButton { background: none !important; color: white; border: none; box-shadow: none; font-size: 11px; display: inline; margin: 0px; padding-left: 0px !important; } .userSettingsButton:hover { color: #00A5E1; } .search { position: absolute; z-index: 9; margin: 115px 5px 0px 28px; } .search:before{ content: "\f002"; padding-right: 10px; font: 18px/1 FontAwesome; color: white; } .toolbar { margin-bottom: 5px; margin-top: 5px; display: inline-block; } .toolbar .z-separator-horizontal { height: 10px } .verzeichnisbaum { background: #f8f8f8; } .verzeichnisbaum .z-separator-horizontal, .verzeichnisbaum .z-separator-horizontal-bar { height: 10px; } .verzeichnisbaum .datenraum:before{ content: "\f0a0"; font: 20px/1 FontAwesome; color: black; } .verzeichnisbaum .datenraum:after{ content: "\f013"; font: 20px/1 FontAwesome; float: right; color: black; cursor: pointer; } .verzeichnisbaum .datenraum .z-label:before { display: none; } .infoText { text-align: center; margin: 10px 20px 30px 20px; } .infoText .z-label { color: grey; font-style: italic; } .verzButtons { margin-top: 300px; } .verzeichnisbaumButton { background: none !important; color: black; box-shadow: none; } .verzeichnisbaumButton .z-icon-group:before, .verzeichnisbaumButton .z-icon-users:before, .verzeichnisbaumButton .z-icon-gear:before, .verzeichnisbaumButton .z-icon-cog:before { font: 20px/1 FontAwesome; } .verzeichnisbaum .infoText .z-label:before { display: none; } .datenraum { margin-left: 15px; } .z-navbar ul { background: #2C4766; } .z-navbar-vertical.z-navbar-collapsed { width: inherit; }   .content { padding: 18px 22px; } .vertical .content { padding-left: 182px; } .vertical .content.collapsed { padding-left: 75px; } .horizontal .content { padding-top: 50px; } .container { color: #777; padding: 10px 8px 30px 20px; cursor: pointer; letter-spacing: 0.5px; height: 18px; border-bottom: 3px solid rgba(15, 139, 240, 0.4); } .container span { font-size: 16px !important; font-weight: bold; } .selectedFolder { background: none !important; color: black; border: none !important; font-size: 25px; font-weight: bold; box-shadow: none; margin: 0px; margin-left: 5px; margin-bottom: 10px; } .selectedFolder * { vertical-align: top; } .selectedFolder .z-icon-folder-o:before{ font-size: 50px; } .selectedFolder i { color: #00A5E1; padding-right: 5px; margin-bottom: 10px; } .z-checkbox-switch-on>.z-checkbox-mold { background-color: #00A5E1; } .contentTable { margin-top: 10px; } .showMore { display: inline-block; vertical-align: bottom; position: absolute; bottom: 0; } .showMoreButton { color: black; border-radius: unset; margin: 0; border: none; box-shadow: none; } .z-east-body .showMoreButton { background: lightgrey !important; color: black; border-radius: unset; margin: 0; border: none; box-shadow: none; } .z-select { margin: 8px; border: 0; } .z-north-title, .z-south-title, .z-west-title, .z-east-title { font-weight: bold; color: black; margin-top: 5px; } .z-east-header { background: none; margin: 10px; border-bottom: none; color: black; font-weight: bold; font-size: 20px; } .z-east-header .z-icon-angle-double-right { margin-top: -8px; height: 20px; right: 12px; } .z-east-header .z-icon-angle-double-right:before { content: "\f00d"; font: 20px/1 FontAwesome; color: black; } .z-west-header .z-icon-angle-double-left:before { content: "\f00d"; font: 20px/1 FontAwesome; color: black; } .z-west-header .z-icon-angle-double-left { margin-top: -2px; height: 20px; right: 15px; } .z-west-header { background: #f8f8f8; padding: 20px 20px 0px 28px; font-weight: bold; border-bottom: 0px; color: black; } .z-west-header:before { content: "\f0a0"; padding-right: 10px; padding-top: 4px; font: 22px/1 FontAwesome; float: left; } .z-center-body { padding: 8px; padding-top: 0px; } .z-east-body { padding: 0px; } .z-east-body .z-label{ font-size: 16px; } .z-west-body .z-label:before { content: "\f114"; font: 24px/1 FontAwesome; color: #00A5E1; margin-right: 8px; } .z-west-body .folderOpen .z-label:before { content: "\f115"; font: 24px/1 FontAwesome; } .z-west, .z-west-collapsed, .z-west-splitter { background: rgb(248, 248, 248); } .z-west-splitter, .z-north-splitter, .z-south-splitter, .z-west-splitter:hover, .z-north-splitter:hover, .z-south-splitter:hover { background-color: #f8f8f8; width: 12px; } .z-textbox { border: 1px solid black; } .settingsBox .z-label:last-child:after { content: "\f040"; font: 20px/1 FontAwesome; color: black; margin-left: 10px; cursor: pointer; } .settingsBox .z-label:last-child:hover:after { color: #00a5e1; transition: .3s ease; } .z-icon-caret-left{ font-size: 20px; }