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

Another new ZK fiddle

2guest113.22.218.2523k5bo3tNov 18, 2016 8:52:01 AMlink

resources

index.zulzul<?page title="Thiết lập công thức lương cho kỳ" contentType="text/html;charset=UTF-8"?> <?variable-resolver class="org.zkoss.zkplus.spring.DelegatingVariableResolver"?> <zk xmlns:h="native"> <window title="Thiết lập công thức lương cho kỳ" border="normal" width="100%" height="100%" apply="org.zkoss.bind.BindComposer" viewModel="@id('vm') @init('com.evnit.hrms.spc.viewmodel.tienluong.ThietLapCongThucLuong_VM')"> <borderlayout hflex="1" vflex="1"> <center> <borderlayout> <north maxsize="300" splittable="true" collapsible="true"> <h:table> <h:tr> <h:td> <label value="Tháng" /> </h:td> <h:td> <combobox id="cbbThang" width="150px" model="@load(vm.array_Thang)" selectedItem="@bind(vm.current_Month)"> </combobox> </h:td> <h:td> <label value="Năm" /> </h:td> <h:td> <combobox id="cbbNam" selectedItem="@bind(vm.current_Year)" model="@load(vm.array_Nam)" width="150px"> </combobox> </h:td> <h:td> <button label="Hiển thị" onClick="@command('hienThi')" hflex="1" height="20px" /> </h:td> </h:tr> </h:table> </north> <center flex="true"> <listbox id="gridHeSo" model="@load(vm.groupCT)" itemRenderer="com.evnit.hrms.spc.grouprenderer.ThietLapCongThucLuong_GroupRenderer" multiple="true"> <custom-attributes org.zkoss.zul.listbox.groupSelect="true" /> <listhead sizable="true"> <listheader label="Tên" hflex="1" /> <listheader label="Tên hệ số" hflex="1" /> <listheader label="Ký hiệu" hflex="1" /> <listheader label="Công thức" hflex="1" /> </listhead> </listbox> </center> </borderlayout> </center> </borderlayout> </window> </zk>ThietLapCongThucLuong_VM.javajavapackage com.evnit.hrms.spc.viewmodel.tienluong; import java.util.ArrayList; import java.util.Calendar; import java.util.List; import org.zkoss.bind.annotation.Command; import org.zkoss.bind.annotation.Init; import org.zkoss.bind.annotation.NotifyChange; import org.zkoss.zk.ui.select.annotation.WireVariable; import com.evnit.hrms.spc.custommodel.ThietLapCongThucLuong_Model; import com.evnit.hrms.spc.groupmodel.ThietLapCongThucLuong_Comparator; import com.evnit.hrms.spc.groupmodel.ThietLapCongThucLuong_GroupModel; import com.evnit.hrms.spc.service.TienLuongService; public class ThietLapCongThucLuong_VM { @WireVariable TienLuongService tlService; List<Integer> array_Thang, array_Nam; private int current_Month, current_Year; List<ThietLapCongThucLuong_Model> listCT; ThietLapCongThucLuong_GroupModel groupCT; public ThietLapCongThucLuong_GroupModel getGroupCT() { return groupCT; } public void setGroupCT(ThietLapCongThucLuong_GroupModel groupCT) { this.groupCT = groupCT; } public List<ThietLapCongThucLuong_Model> getListCT() { return listCT; } public void setListCT(List<ThietLapCongThucLuong_Model> listCT) { this.listCT = listCT; } public int getCurrent_Year() { return current_Year; } public void setCurrent_Year(int current_Year) { this.current_Year = current_Year; } public int getCurrent_Month() { return current_Month; } public void setCurrent_Month(int current_Month) { this.current_Month = current_Month; } public List<Integer> getArray_Thang() { return array_Thang; } public void setArray_Thang(List<Integer> array_Thang) { this.array_Thang = array_Thang; } public List<Integer> getArray_Nam() { return array_Nam; } public void setArray_Nam(List<Integer> array_Nam) { this.array_Nam = array_Nam; } private void loadComboboxThang() { array_Thang = new ArrayList<Integer>(); for(int i = 1; i < 13; i++) array_Thang.add(i - 1, i); } private void loadComboboxNam() { array_Nam = new ArrayList<Integer>(); int year = Calendar.getInstance().get(Calendar.YEAR); array_Nam.add(0, year); for(int i = 1; i < 5; i++) array_Nam.add(i, year - i); } @Init public void init(){ loadComboboxThang(); loadComboboxNam(); int month = Calendar.getInstance().get(Calendar.MONTH) + 1; int year = Calendar.getInstance().get(Calendar.YEAR); setCurrent_Month(month); setCurrent_Year(year); groupCT = new ThietLapCongThucLuong_GroupModel(tlService.getCongThucArray(222, month, year), new ThietLapCongThucLuong_Comparator()); groupCT.setMultiple(true); } @NotifyChange("listCT") @Command public void hienThi() { listCT = tlService.getCongThucLuong(222, current_Month, current_Year); } } ThietLapCongThucLuong_GroupRenderer.javajavapackage com.evnit.hrms.spc.grouprenderer; import org.zkoss.zul.Label; import org.zkoss.zul.Listcell; import org.zkoss.zul.Listgroup; import org.zkoss.zul.Listgroupfoot; import org.zkoss.zul.Listitem; import org.zkoss.zul.ListitemRenderer; import com.evnit.hrms.spc.custommodel.ThietLapCongThucLuong_Model; import com.evnit.hrms.spc.groupmodel.ThietLapCongThucLuong_GroupModel; public class ThietLapCongThucLuong_GroupRenderer implements ListitemRenderer<Object> { public void render(Listitem listitem, Object obj, int index) throws Exception { if (listitem instanceof Listgroup) { ThietLapCongThucLuong_GroupModel.ThietLapCongThucLuong_GroupInfo groupInfo = (ThietLapCongThucLuong_GroupModel.ThietLapCongThucLuong_GroupInfo) obj; ThietLapCongThucLuong_Model ct = groupInfo.getFirstChild(); String groupTxt; switch (groupInfo.getColIndex()) { case 0: groupTxt = ct.gettENHINHTHUC(); break; case 1: groupTxt = ct.gettEN(); break; case 2: groupTxt = ct.getkYHIEU(); break; case 3: groupTxt = ct.getcONGTHUC(); break; default: groupTxt = ct.gettENHINHTHUC(); } listitem.appendChild(new Listcell(groupTxt)); listitem.setValue(obj); } else if (listitem instanceof Listgroupfoot) { Listcell cell = new Listcell(); cell.setSclass("foodFooter"); cell.setSpan(4); cell.appendChild(new Label("Có " + obj + " công thức")); listitem.appendChild(cell); } else { ThietLapCongThucLuong_Model data = (ThietLapCongThucLuong_Model) obj; listitem.appendChild(new Listcell(data.gettENHINHTHUC())); listitem.appendChild(new Listcell(data.gettEN())); listitem.appendChild(new Listcell(data.getkYHIEU())); listitem.appendChild(new Listcell(data.getcONGTHUC())); listitem.setValue(data); } } } ThietLapCongThucLuong_GroupModel.javajavapackage com.evnit.hrms.spc.groupmodel; import java.util.Comparator; import org.zkoss.zul.GroupsModelArray; import com.evnit.hrms.spc.custommodel.ThietLapCongThucLuong_Model; public class ThietLapCongThucLuong_GroupModel extends GroupsModelArray<ThietLapCongThucLuong_Model, ThietLapCongThucLuong_GroupModel.ThietLapCongThucLuong_GroupInfo, Object, Object> { private static final long serialVersionUID = 1L; public ThietLapCongThucLuong_GroupModel(ThietLapCongThucLuong_Model[] data, Comparator<ThietLapCongThucLuong_Model> cmpr) { super(data, cmpr); } protected ThietLapCongThucLuong_GroupInfo createGroupHead(ThietLapCongThucLuong_Model[] groupdata, int index, int col) { return new ThietLapCongThucLuong_GroupInfo(groupdata[0], index, col); } protected Object createGroupFoot(ThietLapCongThucLuong_Model[] groupdata, int index, int col) { // Return the sum number of each group return groupdata.length; } public static class ThietLapCongThucLuong_GroupInfo { private ThietLapCongThucLuong_Model firstChild; private int groupIndex; private int colIndex; public ThietLapCongThucLuong_GroupInfo(ThietLapCongThucLuong_Model firstChild, int groupIndex, int colIndex) { super(); this.firstChild = firstChild; this.groupIndex = groupIndex; this.colIndex = colIndex; } public ThietLapCongThucLuong_Model getFirstChild() { return firstChild; } public int getGroupIndex() { return groupIndex; } public int getColIndex() { return colIndex; } } }