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

MVVM test

8guest113.190.240.471b7g8spJul 29, 2015 9:34:31 AMlink

resources

index.zulzul<?page title="Auto Generated index.zul"?> <window title="Hello World!!" border="normal" width="100%"> <div apply="org.zkoss.bind.BindComposer" viewModel="@id('vm') @init('pkg$.CustomerController')"> <grid> <columns visible="false"> <column></column> </columns> <rows> <row spans="1"> <hlayout> <button id="btn_AddCustomer" onClick="@command('onClick_btn_AddCustomer')" label="Thêm Khách Hàng" /> </hlayout> </row> <row spans="1"> <listbox id="ds2" height="500px" emptyMessage="Không Có Khách Hàng" model="@load(vm.listCus)"> <auxhead> <auxheader colspan="17"> <label>Danh Sách Khách Hàng</label> </auxheader> </auxhead> <listhead> <listheader label="Mã Khách Hàng" align="center" /> <listheader label="Loại Khách Hàng" align="center" /> <listheader label="Khu Vực" align="center" /> <listheader label="Tên Khách Hàng" align="center" /> <listheader label="Địa Chỉ" align="center" /> <listheader label="Mã Số Thuế" align="center" /> <listheader label="Fax" align="center" /> <listheader label="Số Điện Thoại" align="center" /> <listheader label="Số Di Động" align="center" /> <listheader label="Email" align="center" /> <listheader label="Websile" align="center" /> <listheader label="Số Tài Khoản" align="center" /> <listheader label="Tên Ngân Hàng" align="center" /> <listheader label="Giới Hạn Nợ" align="center" /> <listheader label="Nợ Hiện Tại" align="center" /> <listheader label="Chiết Khấu" align="center" /> <listheader label="Người Liên Hệ" align="center" /> </listhead> <template name="model" var="listCus"> <listitem> <listcell label="@load(listCus.customerCode)"> </listcell> <listcell> <image src="@load(listCus.customerType eq true ? 'img/daily.png' : 'img/khachle.png')"> </image> </listcell> <listcell> <label value="@load(listCus.region)" /> </listcell> <listcell> <label value="@load(listCus.customerName)" /> </listcell> <listcell> <label value="@load(listCus.customerAdress)" /> </listcell> <listcell> <label value="@load(listCus.tax)" /> </listcell> <listcell> <label value="@load(listCus.fax)" /> </listcell> <listcell> <label value="@load(listCus.tel)" /> </listcell> <listcell> <label value="@load(listCus.mobile)" /> </listcell> <listcell> <label value="@load(listCus.email)" /> </listcell> <listcell> <label value="@load(listCus.website)" /> </listcell> <listcell> <label value="1" /> </listcell> <listcell> <label value="2" /> </listcell> <listcell> <label value="@load(listCus.limitOwe)" /> </listcell> <listcell> <label value="@load(listCus.owe)" /> </listcell> <listcell> <label value="@load(listCus.discount)" /> </listcell> <listcell> <label value="@load(listCus.contact)" /> </listcell> </listitem> </template> </listbox> </row> </rows> </grid> </div> </window>Customercontroller.javajava import java.awt.Event; import java.util.ArrayList; import java.util.List; import hibernateObj.*; import org.zkoss.zul.Window; import org.zkoss.bind.annotation.Command; 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.SelectorComposer; import org.zkoss.zk.ui.select.annotation.Listen; import org.zkoss.zk.ui.select.annotation.Wire; import org.zkoss.zul.Intbox; import org.zkoss.zul.Radio; import org.zkoss.zul.Textbox; import DAO.customerDAO; public class CustomerController extends SelectorComposer<Component> { private static final long serialVersionUID = 1L; private static List<Customers> listCus = FillCustomer(); private static Customers cusSelect = null; @Wire private Window frmAddCustomer; @Wire private Radio rdb_frmAddCustomer_CusType; @Wire private Intbox itb_frmAddCustomer_CusCode,itb_frmAddCustomer_LimitOwe,itb_frmAddCustomer_Owe ,itb_frmAddCustomer_Discount; @Wire private Textbox txt_frmAddCustomer_Region,txt_frmAddCustomer_CusName,txt_frmAddCustomer_CusAdress, txt_frmAddCustomer_Tax,txt_frmAddCustomer_Fax,txt_frmAddCustomer_Tel,txt_frmAddCustomer_Mobile, txt_frmAddCustomer_Email,txt_frmAddCustomer_Website,txt_frmAddCustomer_BankAccountNumber, txt_frmAddCustomer_BankName,txt_frmAddCustomer_Contact; /*public static List<Customer> lstCustomer = getListCustomer();*/ @Command @NotifyChange("*") public void onClick_btn_AddCustomer(Event e){ org.zkoss.zul.Window w = (Window) Executions.createComponents("/AdCustomer.zul", null, null); w.doModal(); } @Listen("onClick = #itb_frmAddCustomer_CusCode; " + "onChange = #itb_frmAddCustomer_CusCode") private boolean validForm(){ boolean isValid = true; long cusCode = itb_frmAddCustomer_CusCode.getValue(); if(cusCode <= 0) isValid = false; return isValid; } @Listen("onClick = #btn_frmAddCustomer_Save") public void onClick_btn_frmAddCustomer_Save(){ if (validForm()) { Customers cus = new Customers(); cus.setCustomerCode(itb_frmAddCustomer_CusCode.getValue()); cus.setCustomerName(txt_frmAddCustomer_CusName.getValue()); cus.setCustomerType(rdb_frmAddCustomer_CusType.isChecked()); cus.setCustomerAdress(txt_frmAddCustomer_CusAdress.getValue()); cus.setTax(txt_frmAddCustomer_Tax.getValue()); cus.setFax(txt_frmAddCustomer_Fax.getValue()); cus.setTel(txt_frmAddCustomer_Tel.getValue()); cus.setMobile(txt_frmAddCustomer_Mobile.getValue()); cus.setEmail(txt_frmAddCustomer_Email.getValue()); cus.setWebsite(txt_frmAddCustomer_Website.getValue()); cus.setContact(txt_frmAddCustomer_Contact.getValue()); cus.setLimitOwe(itb_frmAddCustomer_LimitOwe.getValue()); cus.setOwe(itb_frmAddCustomer_Owe.getValue()); cus.setDiscount(itb_frmAddCustomer_Discount.getValue()); } } private static List<Customers> FillCustomer(){ customerDAO cusDA = new customerDAO(); List<Customers> lstCus = cusDA.findAll(); return lstCus; } @Init public void init(){ CustomerController.listCus = FillCustomer(); if(!listCus.isEmpty()){ setCusSelect(listCus.get(0)); } } public static Customers getCusSelect() { return cusSelect; } public static void setCusSelect(Customers cusSelect) { CustomerController.cusSelect = cusSelect; } public static List<Customers> getListCus() { return listCus; } public static void setListCus(List<Customers> listCus) { CustomerController.listCus = listCus; } } customerDAO.javajava import java.util.LinkedList; import java.util.List; public class customerDAO { public List<Customers> findAll() { List<Customers> lstCus = new LinkedList<Customers>(); lstCus.add(new Customers(1,"nguyen van luan","hung yen",false,"","","","","","","",12,0,0,"")); lstCus.add(new Customers(2,"nguyen van luan 2","hung yen 2",false,"","","","","","","",16,0,0,"")); return lstCus; } } Customers.javajavapublic class Customers implements java.io.Serializable { private static final long serialVersionUID = 1L; private int customerCode; private String customerName; private String customerAdress; private Boolean customerType; private String region; private String tax; private String fax; private String tel; private String mobile; private String email; private String website; private Integer limitOwe; private Integer owe; private Integer discount; private String contact; public Customers() { } public Customers(int customerCode) { this.customerCode = customerCode; } public Customers(int customerCode, String customerName, String customerAdress, Boolean customerType, String region, String tax, String fax, String tel, String mobile, String email, String website, Integer limitOwe, Integer owe, Integer discount, String contact) { this.customerCode = customerCode; this.customerName = customerName; this.customerAdress = customerAdress; this.customerType = customerType; this.region = region; this.tax = tax; this.fax = fax; this.tel = tel; this.mobile = mobile; this.email = email; this.website = website; this.limitOwe = limitOwe; this.owe = owe; this.discount = discount; this.contact = contact; } public int getCustomerCode() { return this.customerCode; } public void setCustomerCode(int customerCode) { this.customerCode = customerCode; } public String getCustomerName() { return this.customerName; } public void setCustomerName(String customerName) { this.customerName = customerName; } public String getCustomerAdress() { return this.customerAdress; } public void setCustomerAdress(String customerAdress) { this.customerAdress = customerAdress; } public Boolean getCustomerType() { return this.customerType; } public void setCustomerType(Boolean customerType) { this.customerType = customerType; } public String getRegion() { return this.region; } public void setRegion(String region) { this.region = region; } public String getTax() { return this.tax; } public void setTax(String tax) { this.tax = tax; } public String getFax() { return this.fax; } public void setFax(String fax) { this.fax = fax; } public String getTel() { return this.tel; } public void setTel(String tel) { this.tel = tel; } public String getMobile() { return this.mobile; } public void setMobile(String mobile) { this.mobile = mobile; } public String getEmail() { return this.email; } public void setEmail(String email) { this.email = email; } public String getWebsite() { return this.website; } public void setWebsite(String website) { this.website = website; } public Integer getLimitOwe() { return this.limitOwe; } public void setLimitOwe(Integer limitOwe) { this.limitOwe = limitOwe; } public Integer getOwe() { return this.owe; } public void setOwe(Integer owe) { this.owe = owe; } public Integer getDiscount() { return this.discount; } public void setDiscount(Integer discount) { this.discount = discount; } public String getContact() { return this.contact; } public void setContact(String contact) { this.contact = contact; } }