Suggested case list:
Using timer to refresh a grid
383guest172.69.33.12125nk0uiMay 7, 2020 7:23:47 AMlinkuser model to move item to another listbox
120guest162.158.193.148d0n3krApr 2, 2020 5:28:28 AMlinkDisabled list item row passed to VM-1981
296fatih123160.83.36.13025nk0uiFeb 13, 2018 4:25:44 PMlinkDisabled list item row passed to VM-1981
295fatih123160.83.36.13025nk0uiFeb 13, 2018 4:25:16 PMlinkDisabled list item row passed to VM-1981
294fatih123160.83.36.13225nk0uiFeb 13, 2018 3:30:44 PMlinkgrid sample with ListModel/RowRenderer
816guest80.82.2.1312vah9ajFeb 21, 2017 11:42:21 AMlinkgrid sample with ListModel/RowRenderer
809guest175.98.113.1622vah9ajJan 26, 2017 9:19:33 AMlinkgrid sample with ListModel/RowRenderer
196guest79.185.142.402vah9ajApr 26, 2014 10:53:57 PMlinkgrid sample with ListModel/RowRenderer
195guest79.185.142.402vah9ajApr 26, 2014 10:53:54 PMlinkgrid sample with ListModel/RowRenderer
194guest79.185.142.402vah9ajApr 26, 2014 10:53:51 PMlinkgrid sample with ListModel/RowRenderer
193guest79.185.142.402vah9ajApr 26, 2014 10:53:48 PMlinkgrid sample with ListModel/RowRenderer
192guest79.185.142.402vah9ajApr 26, 2014 10:53:44 PMlinkgrid sample with ListModel/RowRenderer
191guest79.185.142.402vah9ajApr 26, 2014 10:53:40 PMlinkHierarchy table without using ZK PE/EE
1aaknai151.28.135.2131s871daJul 29, 2013 11:02:46 PMlinkgrid sample with ListModel/RowRenderer
128aaknai151.28.135.2132vah9ajJul 29, 2013 7:20:00 PMlinkuser model to move item to another listbox
1TonyQ114.25.109.94d0n3krApr 21, 2012 10:43:27 AMlinkUsing timer to refresh a grid
1TonyQ220.133.44.3725nk0uiFeb 17, 2012 3:17:34 AMlinkFire a event from child iframe
1TonyQ220.133.44.372eupjotFeb 3, 2012 5:04:52 AMlinkTextbox input restriction sample
1TonyQ72.21.245.2431b3nlr0Dec 20, 2011 10:09:10 AMlinkTest web core taglib in ZUL
1TonyQ198.203.175.175ofqkemDec 17, 2011 3:36:08 AMlinkLatest 10 Fiddles :
HTML Template with ZK
1guest162.158.178.2102847gt4Apr 23, 2024 2:39:12 AMlinkzk timeout simplified
1guest172.68.125.1581bp3pf0Apr 22, 2024 5:41:22 PMlinkzk timeout simplified
18guest172.68.125.15885cq6Apr 22, 2024 5:41:16 PMlinkFileupload accept and other options
14guest141.101.98.164v7e6epApr 22, 2024 3:28:05 PMlinkFileupload accept and other options
13guest172.70.90.2v7e6epApr 22, 2024 3:19:17 PMlinkFileupload accept and other options
12guest172.69.195.135v7e6epApr 22, 2024 3:18:32 PMlinkFileupload accept and other options
11guest172.69.195.198v7e6epApr 22, 2024 3:13:27 PMlinkFileupload accept and other options
10guest172.71.178.4v7e6epApr 22, 2024 3:09:16 PMlinkFileupload accept and other options
9guest172.71.178.4v7e6epApr 22, 2024 3:08:38 PMlinkFileupload accept and other options
8guest172.71.178.5v7e6epApr 22, 2024 3:08:13 PMlinkchildren multiple combo
12aUser162.158.129.64l1anajApr 20, 2021 9:56:29 PMlinkresources
index.zulzul<zk>
<window border="normal" title="hello" viewModel="@id('vm') @init('pkg$.TestComposer')">
<combobox selectedItem="@bind(vm.selectedItem)" placeholder="No Selection" children="@load(vm.items)" onChange="@command('updateSecondList')">
<template name="children">
<comboitem label="@load(each.description)" value="@load(each.id)"/>
</template>
</combobox>
<combobox children="@load(vm.itemsSecondList)" selectedItem="@bind(vm.selectedItemSecondList)">
<template name="children">
<comboitem label="@load(each.description)" value="@load(each.id)" />
</template>
</combobox>
<button onClick="@command('showSelectedItem')" label="Show selected item"></button>
<button onClick="@command('addItem')" label="add item"></button>
<button onClick="@command('removeLastItem')" label="remove last item"></button>
</window>
</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.*;
import org.zkoss.bind.annotation.Command;
import org.zkoss.bind.annotation.Init;
import java.util.*;
import org.zkoss.bind.annotation.NotifyChange;
public class TestComposer {
private String selectedItem;
private String selectedItemSecondList;
private static int counter = 4;
List<Decode> items = new ListModelList<Decode>();
ListModelList<Decode> itemsSecondList = new ListModelList<Decode>();
@Init
public void init() {
items.add(new Decode(null, "No Selection"));
items.add(new Decode("1", "first item"));
items.add(new Decode("2", "second item"));
items.add(new Decode("3", "third item"));
}
public List<Decode> getItems() {
return items;
}
public List<Decode> getItemsSecondList() {
return itemsSecondList;
}
public String getSelectedItem() {
return selectedItem;
}
public void setSelectedItem(String selectedItem) {
this.selectedItem = selectedItem;
}
public String getSelectedItemSecondList() {
return selectedItemSecondList;
}
public void setSelectedItemSecondList(String selectedItemSecondList) {
this.selectedItemSecondList = selectedItemSecondList;
}
@Command
@NotifyChange("items")
public void addItem() {
items.add(new Decode(String.valueOf(counter), "description " + (counter++)));
}
@Command
@NotifyChange("items")
public void removeLastItem() {
items.remove(items.size() - 1);
}
@Command
public void showSelectedItem() {
Clients.log("selected: " + selectedItem);
}
@Command
//@NotifyChange({"itemsSecondList", "selectedItemSecondList"})
@NotifyChange("selectedItemSecondList")
public void updateSecondList() {
itemsSecondList.clear();
itemsSecondList.add(new Decode("s1", "item " + (counter++) + " second list"));
itemsSecondList.add(new Decode("s2", "item " + (counter++) + " second list"));
itemsSecondList.add(new Decode("s3", "item " + (counter++) + " second list"));
selectedItemSecondList = null;
itemsSecondList.clearSelection();
}
}
Decode.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.*;
import java.io.Serializable;
public class Decode implements Comparable<Decode>, Serializable {
private static final long serialVersionUID = -7536831885134382972L;
private String id;
private String description;
public Decode() {
}
public Decode(String id, String description) {
super();
this.id = id;
this.description = description;
}
public String getId() {
return id;
}
public String getDescription() {
return description;
}
public void setId(String id) {
this.id = id;
}
public void setDescription(String description) {
this.description = description;
}
@Override
public String toString() {
return "Decode { id = " + this.id + " , description = " + this.description + " }";
}
@Override
public int compareTo(Decode obj) {
int res = this.getId().toUpperCase().compareTo(obj.getId().toUpperCase());
return res;
}
@Override
public boolean equals(Object obj) {
if (obj == null)
return false;
if (id == null)
return ((Decode) obj).getId() == null;
if (((Decode) obj).getId() == null)
return false;
return id.equalsIgnoreCase(((Decode) obj).getId());
}
}