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

4guest114.42.111.2102o200h0May 13, 2014 3:04:02 PMlink

resources

index.zulzul<?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit" ?> <?script content="zk.googleAPIkey='ABQIAAAAmGxmYR57XDAbAumS9tV5fxQXyylOlR69a1vFTcUcpV6DXdesOBSMEHfkewcSzwEwBT7UzVx8ep8vjA'" ?> <?page title="出貨單主檔" contentType="text/html;charset=UTF-8"?> <zk> <window id="win" title="出貨單" border="normal" width="750" height="400px" apply="org.zkoss.bind.BindComposer" viewModel="@id('vm') @init('pkg$.TestComposer')"> <zscript><![CDATA[ ]]></zscript> <style> div.z-listfooter-cnt, div.z-listcell-cnt, div.z-listheader-cnt, div.z-toolbarbutton-cnt {font-size: 15px;} </style> <div> <toolbar hflex="true"> <toolbarbutton label="查詢" tooltiptext="Search"/> <toolbarbutton label="更新" tooltiptext="Refresh" onClick="@command('action_Refresh')"/> <toolbarbutton label="新增" tooltiptext="Add" onClick="@command('action_Add')"/> <toolbarbutton label="修改" tooltiptext="Update" onClick="@command('action_Update')"/> <toolbarbutton label="刪除" tooltiptext="Delete" onClick="@command('action_Delete')"/> </toolbar> </div> <listbox id= "shippingOrderList" height="400px" model="@load(vm.shippingOrdersList)" selectedItem="@bind(vm.selectedShippingOrder)" multiple="true"> <listhead> <listheader label="出貨訂單號" sort="auto(SDNO)"/> <listheader label="出貨日期" /> <listheader label="客戶代號" /> <listheader label="客戶名稱" /> </listhead> <template name="model" var="order"> <listitem> <listcell label="@bind(order.SDNO)" /> <listcell label="@bind(order.shippingDate)"/> <listcell label="@bind(order.shipToCustomerID)" /> <listcell label="@bind(order.shipToCustomerName)" /> </listitem> </template> </listbox> </window> </zk>TestComposer.javajavapackage tw.com.jingbao.ui.shippingorder; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.HashMap; import java.util.Map; import org.zkoss.bind.BindUtils; 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.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.zk.ui.util.Clients; import org.zkoss.zul.Datebox; import org.zkoss.zul.ListModelList; import org.zkoss.zul.Textbox; import org.zkoss.zul.Window; public class ShippingOrderController extends SelectorComposer<Component> { private static final long serialVersionUID = 1L; private ShippingOrderService order = new ShippingOrderImp(); // private List<ShippingOrder> shippingOrdersList = new ArrayList<ShippingOrder>(); private String recordMode; @Wire private Window win; @Wire private Window addDialog; @Wire private Datebox shippingDate; @Wire private Textbox SDNO; @Wire private Textbox shipToCustomerID; @Wire private Textbox shipToCustomerName; ListModelList<ShippingOrder> shippingOrdersList = new ListModelList<ShippingOrder>(); private ShippingOrder shippingOrder; private ShippingOrder selectedShippingOrder; @AfterCompose public void afterCompose(@ContextParam(ContextType.VIEW) Component view) { System.out.println("@AfterCompose"); shippingOrdersList = new ListModelList<ShippingOrder>( loadData()); shippingOrdersList.setMultiple(true); } public ListModelList<ShippingOrder> getShippingOrdersList() { return shippingOrdersList; } public void setShippingOrdersList(ListModelList<ShippingOrder> shippingOrdersList) { this.shippingOrdersList = shippingOrdersList; } public ShippingOrder getShippingOrder() { return shippingOrder; } @NotifyChange({"selectedShippingOrder","shippingOrder"}) @Listen("onClick = #btnTailSubmit") public void action_submit() throws Exception { shippingOrder = new ShippingOrder(); shippingOrder.setSDNO(SDNO.getText()); shippingOrder.setShippingDate(shippingDate.getValue()); shippingOrder.setShipToCustomerID(shipToCustomerID.getText()); shippingOrder.setShipToCustomerName(shipToCustomerName.getText()); //format shippingDate to yyyy/MM/DD java.util.Date date = new java.util.Date(); date = shippingDate.getValue(); java.sql.Date sqlDate = new java.sql.Date(date.getTime()); //re-setShippingDate shippingOrder.setShippingDate(sqlDate); selectedShippingOrder = shippingOrder; Map args = new HashMap(); args.put("order", this.selectedShippingOrder); args.put("recordMode", "NEW"); BindUtils.postGlobalCommand(null, null, "updateShippingOrdersList", args); order.action_Add(shippingOrder); //showNotify("Saved", win); action_Cancel(); } @Listen("onClick = #btnTailClear") public void action_clear() { String timeStamp = new SimpleDateFormat("yyyyMMdd").format(Calendar.getInstance().getTime()); String year = timeStamp.substring(0, 4); String month = timeStamp.substring(4, 6); String day = timeStamp.substring(6, 8); shippingDate.setText(year+"/"+month+"/"+day); SDNO.setText(""); shipToCustomerID.setText(""); shipToCustomerName.setText(""); showNotify("Clear", win); } @Listen("onClick = #btnTailCancel") public void action_Cancel(){ addDialog.detach(); } @NotifyChange("selectedShippingOrder") public void setSelectedShippingOrder(ShippingOrder selected) { this.selectedShippingOrder = selected; } @Command public void onDoubleClicked() throws Exception { Window editDialog = (Window) Executions.createComponents("shippingOrder_Edit.zul", win, getSelectedMap()); editDialog.doModal(); } public ShippingOrder getSelectedShippingOrder() { return selectedShippingOrder; } private void showNotify(String msg, Component ref) { Clients.showNotification(msg, "info", ref, "end_center", 2000); } @Command public void action_Add() throws Exception{ final HashMap<String, Object> map = new HashMap<String, Object>(); map.put("order", null); map.put("recordMode", "NEW"); Window w = (Window) Executions.createComponents("shippingOrder_Add.zul", win, map); w.doModal(); } @Command public void action_Update() throws Exception{ Window w = (Window) Executions.createComponents("shippingOrder_Edit.zul", win, getSelectedMap()); w.doModal(); } @Command public void action_Refresh() throws Exception{ Executions.sendRedirect("shippingOrder.zul"); } @Command public void action_DetailAdd() throws Exception{ Window w = (Window) Executions.createComponents("shippingOrderDetail_Add.zul", win, null); w.doModal(); } @Command @NotifyChange("shippingOrdersList") public void action_Delete(@ContextParam(ContextType.VIEW) Component view){ System.out.println("action_Delete: " + selectedShippingOrder.getSDNO()); // final HashMap<String, Object> map = new HashMap<String, Object>(); // map.put("order", this.selectedShippingOrder); // map.put("recordMode", "Delete"); // // if(selectedShippingOrder == null ){ // Messagebox.show("No rows are selected"); // }else{ // // Messagebox.show("Are you sure you want to delete?", "Alert !!", // Messagebox.YES | Messagebox.NO, Messagebox.QUESTION, // new org.zkoss.zk.ui.event.EventListener() { // // @Override // public void onEvent(Event evt) throws InterruptedException { // // TODO Auto-generated method stub // if(evt.getName().equals("onYes")){ // // //shippingOrdersList.remove(selectedShippingOrder); // BindUtils.postGlobalCommand(null, null, "updateCustomerList", map); // order.action_Delete(selectedShippingOrder); // } // }}); // } } public HashMap getSelectedMap(){ HashMap selectedMap = new HashMap(); selectedMap.put("SDNO", selectedShippingOrder.getSDNO()); selectedMap.put("SHIPPINGDATE", selectedShippingOrder.getShippingDate()); selectedMap.put("SHIPTOCUSTOMERID", selectedShippingOrder.getShipToCustomerID()); selectedMap.put("SHIPTOCUSTOMERNAME", selectedShippingOrder.getShipToCustomerName()); selectedMap.put("SYSID", selectedShippingOrder.getSYSID()); selectedMap.put("TSTAMP", selectedShippingOrder.getTSTAMP()); return selectedMap; } // method for ZK 6 // public ListitemRenderer getItemRenderer() { // ListitemRenderer _rowRenderer = null; // if (_rowRenderer == null) // { // _rowRenderer = new ListitemRenderer() { // public void render(final Listitem item, final Object object,int index) throws Exception // { // ShippingOrder data = (ShippingOrder) object; // System.out.println("data: " + data.getSDNO()); // item.appendChild(new Listcell(data.getSDNO())); // item.appendChild(new Listcell(data.getShippingDate().toString())); // item.appendChild(new Listcell(data.getShipToCustomerID())); // item.appendChild(new Listcell(data.getShipToCustomerName())); // item.setValue(data); // item.addAnnotation(null, "bind", null); // } // }; // } // return _rowRenderer; // } // The following method will be called from CustomerCRUDVM after the save // When we say Notifychange("allcustomers), then ZUL list items will be // updated @GlobalCommand @NotifyChange("shippingOrdersList") public void updateShippingOrdersList(@BindingParam("order") ShippingOrder selectedShippingOrder, @BindingParam("recordMode") String recordMode) { if (recordMode.equals("NEW")) { shippingOrdersList.add(selectedShippingOrder); } else if (recordMode.equals("Delete")) { shippingOrdersList.remove(selectedShippingOrder); } } public void loadData() { ShippingOrder orderData = new ShippingOrder(); orderData.setSDNO("Himanshu"); orderData.setShippingDate("2014/01/01"); orderData.setShipToCustomerID("Cus01"); orderData.setShipToCustomerName("Cus01"); shippingOrdersList.add(orderData); } } ShippingOrder.javajavapackage tw.com.jingbao.ui.shippingorder; import java.util.Date; public class ShippingOrder { private Date shippingDate; private String SDNO; private String shipToCustomerID; private String shipToCustomerName; private String SYSID; private String TSTAMP; public ShippingOrder(){ } public ShippingOrder(Date shippingDate, String SDNO, String shipToCustomerID, String shipToCustomerName){ this.shippingDate = shippingDate; this.SDNO = SDNO; this.shipToCustomerID = shipToCustomerID; this.shipToCustomerName = shipToCustomerName; } // 出貨日期 public void setShippingDate(Date shippingDate) { this.shippingDate = shippingDate; } public Date getShippingDate() { return shippingDate; } // 出貨單號 public void setSDNO(String SDNO) { this.SDNO = SDNO; } public String getSDNO() { return SDNO; } // 出貨客戶 public void setShipToCustomerID(String shipToCustomerID){ this.shipToCustomerID = shipToCustomerID; } public String getShipToCustomerID(){ return shipToCustomerID; } // 出貨客戶名稱 public void setShipToCustomerName(String shipToCustomerName){ this.shipToCustomerName = shipToCustomerName; } public String getShipToCustomerName(){ return shipToCustomerName; } // SYSID public void setSYSID(String sysID){ this.SYSID = sysID; } public String getSYSID(){ return SYSID; } // TSTAMP public void setTSTAMP(String tStamp){ this.TSTAMP = tStamp; } public String getTSTAMP(){ return TSTAMP; } }