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

filter a list in MVVM

34guest162.158.166.1072nk3kipOct 13, 2020 9:51:32 AMlink

resources

index.zulzul<zk> <window border="normal" title="search" apply="org.zkoss.bind.BindComposer" viewModel="@id('vm') @init('pkg$.ListSearchViewModel')"> <bandbox id="srcJobs1" autodrop="true" width="200px" mold="rounded" disabled="false" value="Job Name Search" instant="true" onChanging="@command('filterJobs', filterValue=event.value)"/> <listbox id="jobsGrid" model="@load(vm.jobsListModel) @template('noneditable')" height="450px" sizedByContent="true" sclass="z-word-wrap" multiple="true" width="1090px" > <listhead sizable="false" width="100%"> <listheader label="test"> <bandbox id="srcJobs2" autodrop="true" width="200px" mold="rounded" disabled="false" value="Job Name Search" instant="true" onChanging="@command('filterJobs', filterValue=event.value)"/> </listheader> <listheader label="test"> <bandbox id="srcJobs3" autodrop="true" width="200px" mold="rounded" disabled="false" value="Job Name Search" instant="true" onChanging="@command('filterJobs', filterValue=event.value)"/> </listheader> <listheader label="test"> <bandbox id="srcJobs4" autodrop="true" width="200px" mold="rounded" disabled="false" value="Job Name Search" instant="true" onChanging="@command('filterJobs', filterValue=event.value)"/> </listheader> <listheader label="test"> <bandbox id="srcJobs5" autodrop="true" width="200px" mold="rounded" disabled="false" value="Job Name Search" instant="true" onChanging="@command('filterJobs', filterValue=event.value)"/> </listheader> </listhead> <template name="noneditable"> <listitem onClick="@command('selectRowToEdit', rowToEdit=each)"> <listcell> <label value="@init(each.a)"/> </listcell> <listcell> <label value="@init(each.b)"/> </listcell> <listcell> <label value="@init(each.c)"/> </listcell><listcell> <label value="@init(each.d)"/> </listcell> </listitem> </template> </listbox> </window> </zk>ListSearchViewModel.javajavaimport java.util.Arrays; import java.util.HashSet; import java.util.Set; import org.zkoss.bind.annotation.BindingParam; import org.zkoss.bind.annotation.Command; import org.zkoss.bind.annotation.Init; import org.zkoss.zul.ListModelSet; import org.zkoss.zul.ListModelList; public class ListSearchViewModel { private Set<MyObject> viewedJobsSet; /* = new HashSet<MyObject>( Arrays.asList(new MyObject("manager"), new MyObject("teacher"), new MyObject( "police officer"), new MyObject( "fire fighter"), new MyObject( "governor"), new MyObject( "programmer"), new MyObject( "designer"), new MyObject( "house keeper"), new MyObject( "physicist"), new MyObject( "fire fighter1"), new MyObject( "fire1 fighte1r"), new MyObject("fire fight1er"), new MyObject("fire figh1ter"), new MyObject("fire fig1hter"), new MyObject("fire fi1ghter"), new MyObject("fire fighter11"), new MyObject( "fire fighter2"), new MyObject("fire2 fighte2r"), new MyObject("fire fight2er"), new MyObject("fire figh2ter"), new MyObject("fire fig2hter"), new MyObject("fire fi2ghter"), new MyObject("fire fighter12"), new MyObject( "fire fighter3"), new MyObject("fire3 fighte4r"), new MyObject("fire fight9er"), new MyObject("fire figh3ter"), new MyObject("fire fig3hter"), new MyObject("fire fi3ghter"), new MyObject("fire fighter13"), new MyObject( "fire fighter4"), new MyObject("fire4 fighte3r"), new MyObject("fire fight3er"), new MyObject("fire figh4ter"), new MyObject("fire fig4hter"), new MyObject("fire fi4ghter"), new MyObject("fire fighter14"), new MyObject( "fire fighter5"), new MyObject("fire5 fighte5r"), new MyObject("fire fight4er"), new MyObject("fire figh5ter"), new MyObject("fire fig5hter"), new MyObject("fire fi5ghter"), new MyObject("fire fighter15"), new MyObject( "fire fighter6"), new MyObject("fire6 fighte6r"), new MyObject("fire fight5er"), new MyObject("fire figh6ter"), new MyObject("fire fig6hter"), new MyObject("fire fi6ghter"), new MyObject("fire fighter16"), new MyObject( "fire fighter7"), new MyObject("fire7 fighte7r"), new MyObject("fire fight6er"), new MyObject("fire figh7ter"), new MyObject("fire fig7hter"), new MyObject("fire fi7ghter"), new MyObject("fire fighter17"), new MyObject( "fire fighter8"), new MyObject("fire8 fighte8r"), new MyObject("fire fight7er"), new MyObject("fire figh8ter"), new MyObject("fire fig8hter"), new MyObject("fire fi8ghter"), new MyObject("fire fighter18"), new MyObject( "fire fighter9"), new MyObject("fire9 fighte9r"), new MyObject("fire fight8er"), new MyObject("fire figh9ter"), new MyObject("fire fig9hter"), new MyObject("fire fi9ghter"), new MyObject("fire fighter19")); */ private ListModelList<MyObject> jobsListModel; @Init public void init() { //initialize the model viewedJobsSet = new HashSet<MyObject>(); viewedJobsSet.add(new MyObject("manager1")); viewedJobsSet.add(new MyObject("manager2")); viewedJobsSet.add(new MyObject("manager3")); viewedJobsSet.add(new MyObject("manager4")); viewedJobsSet.add(new MyObject("manager5")); viewedJobsSet.add(new MyObject("manager6")); viewedJobsSet.add(new MyObject("manager7")); viewedJobsSet.add(new MyObject("manager8")); viewedJobsSet.add(new MyObject("manager9")); viewedJobsSet.add(new MyObject("manager10")); viewedJobsSet.add(new MyObject("manager11")); viewedJobsSet.add(new MyObject("manage1r")); viewedJobsSet.add(new MyObject("manage2r")); viewedJobsSet.add(new MyObject("manage3r")); viewedJobsSet.add(new MyObject("manage4r")); viewedJobsSet.add(new MyObject("manage5r")); viewedJobsSet.add(new MyObject("manage6r")); viewedJobsSet.add(new MyObject("manage7r")); viewedJobsSet.add(new MyObject("manage8r")); viewedJobsSet.add(new MyObject("manage9r")); viewedJobsSet.add(new MyObject("manage0r")); viewedJobsSet.add(new MyObject("manager1")); viewedJobsSet.add(new MyObject("manager1")); viewedJobsSet.add(new MyObject("manager1")); viewedJobsSet.add(new MyObject("manager2")); viewedJobsSet.add(new MyObject("manager3")); viewedJobsSet.add(new MyObject("manager4")); viewedJobsSet.add(new MyObject("manager5")); viewedJobsSet.add(new MyObject("manager6")); viewedJobsSet.add(new MyObject("manager7")); viewedJobsSet.add(new MyObject("manager8")); viewedJobsSet.add(new MyObject("manager9")); viewedJobsSet.add(new MyObject("manager9")); viewedJobsSet.add(new MyObject("manager0")); viewedJobsSet.add(new MyObject("manager-")); viewedJobsSet.add(new MyObject("manager1")); viewedJobsSet.add(new MyObject("manager2")); viewedJobsSet.add(new MyObject("teacher")); viewedJobsSet.add(new MyObject("teacher")); viewedJobsSet.add(new MyObject("teacher")); viewedJobsSet.add(new MyObject("teacher")); viewedJobsSet.add(new MyObject("teacher")); viewedJobsSet.add(new MyObject("teacher")); viewedJobsSet.add(new MyObject("police officer")); viewedJobsSet.add(new MyObject("police officer")); viewedJobsSet.add(new MyObject("police officer")); viewedJobsSet.add(new MyObject("police officer")); viewedJobsSet.add(new MyObject("police officer")); viewedJobsSet.add(new MyObject("police officer")); viewedJobsSet.add(new MyObject("police officer")); viewedJobsSet.add(new MyObject("police officer")); viewedJobsSet.add(new MyObject("police officer")); viewedJobsSet.add(new MyObject("police officer")); viewedJobsSet.add(new MyObject("police officer")); viewedJobsSet.add(new MyObject("police officer")); viewedJobsSet.add(new MyObject("police officer")); viewedJobsSet.add(new MyObject("police officer")); viewedJobsSet.add(new MyObject("police officer")); viewedJobsSet.add(new MyObject("police officer")); viewedJobsSet.add(new MyObject("police officer")); viewedJobsSet.add(new MyObject("police officer")); viewedJobsSet.add(new MyObject("police officer")); viewedJobsSet.add(new MyObject("police officer")); viewedJobsSet.add(new MyObject("police officer")); viewedJobsSet.add(new MyObject("police officer")); viewedJobsSet.add(new MyObject("police officer")); viewedJobsSet.add(new MyObject("police officer")); viewedJobsSet.add(new MyObject("police officer")); viewedJobsSet.add(new MyObject("police officer")); viewedJobsSet.add(new MyObject("police officer")); viewedJobsSet.add(new MyObject("police officer")); viewedJobsSet.add(new MyObject("police officer")); viewedJobsSet.add(new MyObject("police officer")); viewedJobsSet.add(new MyObject("fire officer")); viewedJobsSet.add(new MyObject("fire officer")); viewedJobsSet.add(new MyObject("fire officer")); viewedJobsSet.add(new MyObject("fire officer")); viewedJobsSet.add(new MyObject("fire officer")); viewedJobsSet.add(new MyObject("fire officer")); viewedJobsSet.add(new MyObject("fire officer")); viewedJobsSet.add(new MyObject("fire officer")); viewedJobsSet.add(new MyObject("fire officer")); viewedJobsSet.add(new MyObject("fire officer")); viewedJobsSet.add(new MyObject("fire officer")); viewedJobsSet.add(new MyObject("fire officer")); viewedJobsSet.add(new MyObject("fire officer")); viewedJobsSet.add(new MyObject("fire officer")); viewedJobsSet.add(new MyObject("fire officer")); viewedJobsSet.add(new MyObject("fire officer")); viewedJobsSet.add(new MyObject("fire officer")); viewedJobsSet.add(new MyObject("fire officer")); viewedJobsSet.add(new MyObject("fire officer")); viewedJobsSet.add(new MyObject("fire officer")); viewedJobsSet.add(new MyObject("fire officer")); viewedJobsSet.add(new MyObject("fire officer")); viewedJobsSet.add(new MyObject("fire officer")); viewedJobsSet.add(new MyObject("fire officer")); viewedJobsSet.add(new MyObject("fire officer")); jobsListModel = new ListModelList<MyObject>(viewedJobsSet); } @Command("filterJobs") public void onFilterJobs(@BindingParam("filterValue") String filterValue) { if(filterValue != null && !filterValue.isEmpty()) { jobsListModel.clear(); //replace with your logic to filter the list for (MyObject job : viewedJobsSet) { if(job.getA().contains(filterValue)) { jobsListModel.add(job); org.zkoss.lang.Threads.sleep(20); } } } else { jobsListModel.clear(); jobsListModel.addAll(viewedJobsSet); } } public ListModelList<MyObject> getJobsListModel() { return jobsListModel; } } MyObject.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 MyObject { private String a,b,c,d; public MyObject() { a = "adfg"; b = "bdfg"; c = "cdfg"; d = "ddfg"; } public MyObject(String g) { a = g+"adfgf"; b = g+"bdfgf"; c = g+"cdfgf"; d = g+"ddfgf"; } public String getA() { return a; } public String getB() { return b; } public String getC() { return c; } public String getD() { return d; } }