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 :
Barcodescanner use in Modal Window (with constraint)
2guest162.158.94.74o3j47tApr 25, 2024 3:48:54 PMlinkBarcodescanner use in Modal Window (with constraint)
1guest162.158.94.74o3j47tApr 25, 2024 3:46:51 PMlinkBarcodescanner use in Modal Window (with constraint)
3guest162.158.94.753ibjsapApr 25, 2024 3:45:29 PMlinkBarcodescanner use in Modal Window (with constraint)
2guest162.158.94.743ibjsapApr 25, 2024 3:43:55 PMlinkBarcodescanner use in Modal Window (with constraint)
1guest162.158.86.883ibjsapApr 25, 2024 3:36:53 PMlinkfont awesome effects
246guest172.69.63.15220t2jmoApr 25, 2024 2:00:26 PMlinkAnother new ZK fiddle
2guest172.71.134.130218n5u0Apr 25, 2024 10:30:00 AMlinkAnother new ZK fiddle
1guest172.71.134.130218n5u0Apr 25, 2024 10:29:38 AMlinkBarcodescanner use in Modal Window
8guest162.158.95.20135ck08dApr 25, 2024 10:26:46 AMlinkBarcodescanner use in Modal Window
7guest162.158.95.20235ck08dApr 25, 2024 10:25:21 AMlinkMVVM Bind calls getter multiple times
17cyiannoulis87.202.133.2052ma3umkSep 25, 2014 11:19:48 AMlinkresources
index.zulzul<?page title="Page1" contentType="text/html;charset=UTF-8"?>
<zk>
<window title="Page - 1" border="none" height="100%" width="100%"
xmlns:n="native"
apply="org.zkoss.bind.BindComposer"
viewModel="@id('vm') @init('pkg$.Page1VM')">
<div id="divWorkspace" vflex="true" style="overflow: auto;">
<grid model="@load(vm.persons)" vflex="true">
<columns>
<column label="Person" />
</columns>
<template name="model" var="person">
<row>
<a onClick="@command('edit-person', person=person)">
<label value="@load(person.name)" />
</a>
</row>
</template>
</grid>
</div>
</window>
</zk>Page1VM.javajava
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.zkoss.bind.annotation.AfterCompose;
import org.zkoss.bind.annotation.BindingParam;
import org.zkoss.bind.annotation.Command;
import org.zkoss.bind.annotation.ContextParam;
import org.zkoss.bind.annotation.ContextType;
import org.zkoss.bind.annotation.GlobalCommand;
import org.zkoss.bind.annotation.Init;
import org.zkoss.bind.annotation.NotifyChange;
import org.zkoss.zk.ui.Component;
import org.zkoss.zk.ui.Executions;
import org.zkoss.zk.ui.select.Selectors;
import org.zkoss.zk.ui.select.annotation.Wire;
import org.zkoss.zul.Div;
public class Page1VM {
@Wire Div divWorkspace;
private Component component;
@Init
public void init() {
}
@AfterCompose
public void doAfterCompose(@ContextParam(ContextType.VIEW) Component view) {
Selectors.wireComponents(view, this, false);
}
public List<Person> getPersons() {
List<Person> persons = new ArrayList<Person>();
persons.add(new Person("Darth Vader"));
persons.add(new Person("R2 D2"));
persons.add(new Person("C3 PO"));
persons.add(new Person("Obi Wan Kenobi"));
persons.add(new Person("Luke Skywalker"));
return persons;
}
@Command("edit-person")
public void onEditPerson(@BindingParam("person") Person person) {
component = divWorkspace.getLastChild();
component.setVisible(false);
Map<String, Object> params = new HashMap<String, Object>();
params.put("person", person);
Executions.createComponents("page2.zul", divWorkspace, params);
}
@GlobalCommand("close-person-editor")
@NotifyChange("persons")
public void onUpdatePersonsList(@BindingParam("person") Person person) {
divWorkspace.getLastChild().detach();
component.setVisible(true);
}
}
Person.javajavapublic class Person {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Person(String name) {
super();
this.name = name;
}
}
page2.zulzul<?page title="Page1" contentType="text/html;charset=UTF-8"?>
<zk>
<window title="Page - 2" border="none" height="100%" width="100%"
xmlns:n="native"
apply="org.zkoss.bind.BindComposer"
viewModel="@id('vm') @init('pkg$.Page2VM')">
<div width="100%" >
<vlayout>
<grid hflex="true">
<columns>
<column width="200px" />
<column hflex="1" />
</columns>
<rows>
<row>Name
<textbox value="@bind(vm.person.name)" />
</row>
<row>Position
<selectbox model="@load(vm.positions)" >
<template name="model" var="position" >
<label value="@load(position)" />
</template>
</selectbox>
</row>
</rows>
</grid>
<button label="Save" onClick="@command('save')" />
</vlayout>
</div>
</window>
</zk>Page2VM.javajavaimport java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.zkoss.bind.BindUtils;
import org.zkoss.bind.annotation.Command;
import org.zkoss.bind.annotation.ExecutionArgParam;
import org.zkoss.bind.annotation.Init;
import org.zkoss.zk.ui.util.Clients;
public class Page2VM {
private Person person;
private int i = 0;
@Init
public void init(@ExecutionArgParam("person") Person person) {
this.person = person;
}
@Command("save")
public void onSave() {
Map<String, Object> params = new HashMap<String, Object>();
params.put("person", person);
BindUtils.postGlobalCommand(null, null, "close-person-editor", params);
}
public List<String> getPositions() {
List<String> positions = new ArrayList<String>();
positions.add("Jedai");
positions.add("Robot");
positions.add("Sith");
System.out.println("Page2VM -> getPositions() called " + ++i + " times");
Clients.showNotification("The getter Page2VM.getPositions() called: " + i);
return positions;
}
public Person getPerson() {
return person;
}
}