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 :
constraint binding textbox
3guest172.68.151.16220peldaDec 5, 2025 5:08:19 PMlinkAnother new ZK fiddle
2guest172.68.151.16320peldaDec 5, 2025 5:07:51 PMlinkAnother new ZK fiddle
1guest172.68.151.16220peldaDec 5, 2025 5:07:32 PMlinkAnother new ZK fiddle
1peggypeng172.71.154.99364f4neDec 5, 2025 9:24:31 AMlinktooltip example
2guest104.22.23.13rc1ntoDec 4, 2025 2:23:45 PMlinkAnother new ZK fiddle
1guest172.69.134.2277t7602Dec 4, 2025 1:40:46 PMlinkAnother new ZK fiddle
1peggypeng104.22.17.1802df6e3oDec 4, 2025 8:41:29 AMlinkonClose
1peggypeng172.68.87.248j8kd8aDec 3, 2025 4:10:26 AMlinkAnother new ZK fiddle
1peggypeng172.69.134.2271rm7f4eNov 26, 2025 3:31:24 AMlinkZK-5912-Suggestion
2rebeccalai104.22.20.1442qrmiiuNov 26, 2025 2:07:15 AMlinkAnother new ZK fiddle
2guest125.17.184.621ucmkb0Jan 7, 2016 12:14:32 PMlinkresources
index.zulzul<zk xmlns:h="native">
<window border="none" apply="pkg$.TestComposer">
<div children="@load(vm.expensesforApprovalProcess)" >
<template name="children" var="each">
<groupbox width="100%" mold="3d" closable="false" open="true">
<caption sclass="caption_new" onClick="@command('showApprovalRequestDetails',requestID = each.processID)">
<div class="col-md-6 col-sm-6 padd0">
<div class="form-horizontal mrg_top10">
<div class="form-group marg0">
<h:label class="col-md-3 col-sm-4 col-xs-4 padd_l0">Employee Name: </h:label>
<div class="col-md-9 col-sm-8 col-xs-8">
<label class="padd0" value="@load(each.empName)"></label>
</div>
</div>
<div class="form-group marg0">
<h:label class="col-md-3 col-sm-4 col-xs-4 padd_l0">Dept.</h:label>
<div class="col-md-9 col-sm-8 col-xs-8">
<label class="padd0" value="@load(each.department_desc)"></label>
</div>
</div>
<div class="form-group marg0">
<h:label class="col-md-3 col-sm-4 col-xs-4 padd_l0">IO </h:label>
<div class="col-md-9 col-sm-8 col-xs-8">
<label class="padd0" value="@load(each.io)"></label>
</div>
</div>
<div class="form-group marg0">
<h:label class="col-md-3 col-sm-4 col-xs-4 padd_l0">Date of Expense </h:label>
<div class="col-md-9 col-sm-8 col-xs-8">
<label class="padd0" value="@load(each.createdDate)"></label>
</div>
</div>
</div>
</div>
<div class="col-md-6 col-sm-6 padd0">
<div class="form-horizontal mrg_top10">
<div class="form-group marg0">
<h:label class="col-md-3 col-sm-4 col-xs-4 padd_l0">Amount </h:label>
<div class="col-md-9 col-sm-8 col-xs-8">
<label class="padd0" value="@load(each.amount)"></label>
</div>
</div>
<div class="form-group marg0">
<h:label class="col-md-3 col-sm-4 col-xs-4 padd_l0">View voucher: </h:label>
<div class="col-md-9 col-sm-8 col-xs-8">
<a href="">
<image src="../css/images/view_attachment.png" onClick="@command('ExpanseReport',expense = each)" visible="@bind(each.isshowVoucher)"/>
</a>
</div>
</div>
<div class="form-group marg0">
<h:label class="col-md-3 col-sm-4 col-xs-4 padd_l0">Approve </h:label>
<div class="col-md-9 col-sm-8 col-xs-8" >
<radiogroup style="padding:0px 0px 0px 0px !important" selectedItem="@bind(each.isExpReqApproved)">
<radio label="Yes" value="Y"/>
<radio label="No" value="N"/>
</radiogroup>
</div>
</div>
<div class="form-group marg0">
<h:label class="col-md-3 col-sm-4 col-xs-4 padd_l0">Comment</h:label>
<div class="col-md-9 col-sm-8 col-xs-8">
<textbox class="padd0" value="@bind(each.appRemark)"></textbox>
</div>
</div>
</div>
</div>
</caption>
<div class="form-horizontal master_group master_group_first mrg_top10" children="@load(vm.expensesforApproval)" >
<template name="children" var="each">
<div class="form-group col-md-4">
<h:label class="col-md-6 col-xs-6">Employee Code </h:label>
<div class="col-md-6 col-xs-6">
<label value="@load(each.edp_no)"></label>
</div>
</div>
<div class="form-group col-md-4">
<h:label class="col-md-6 col-xs-6">Employee Name: </h:label>
<div class="col-md-6 col-xs-6">
<label value="@load(each.empName)"></label>
</div>
</div>
<div class="form-group col-md-4">
<h:label class="col-md-6 col-xs-6">Dept </h:label>
<div class="col-md-6 col-xs-6">
<label value="@load(each.department_desc)"></label>
</div>
</div>
<div class="form-group col-md-4">
<h:label class="col-md-6 col-xs-6">IO </h:label>
<div class="col-md-6 col-xs-6">
<label value="@bind(each.io)"></label>
</div>
</div>
<div class="form-group col-md-4">
<h:label class="col-md-6 col-xs-6">Cost Code </h:label>
<div class="col-md-6 col-xs-6">
<label value="@bind(each.cost_cetre)"></label>
</div>
</div>
<div class="form-group col-md-4">
<h:label class="col-md-6 col-xs-6">Expense </h:label>
<div class="col-md-6 col-xs-6">
<label value="@bind(each.charge.name)"></label>
</div>
</div>
<div class="form-group col-md-4">
<h:label class="col-md-6 col-xs-6">Amount </h:label>
<div class="col-md-6 col-xs-6">
<label value="@bind(each.amount)"></label>
</div>
</div>
<div class="form-group col-md-4">
<h:label class="col-md-6 col-xs-6">Remarks </h:label>
<div class="col-md-6 col-xs-6">
<label value="@bind(each.remarks)"></label>
</div>
</div>
<div class="form-group col-md-4">
<h:label class="col-md-6 col-xs-6">Bill Attachment: </h:label>
<div class="col-md-6 col-xs-6">
<button sclass="btn-success btn-sm" label="View Attachment" onClick="@command('ShowAttachments', ID = each.documentNo)"></button>
</div>
</div>
<div class="form-group col-md-4">
<h:label class="col-md-6 col-xs-6">Status: </h:label>
<div class="col-md-6 col-xs-6">
<label value="@bind(each.status)"></label>
</div>
</div>
<div class="clearboth"></div>
</template>
</div>
<div class="clearboth"></div>
</groupbox>
</template>
</div>
</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 java.util.LinkedList;
import pkg$.Expense.java;
public class TestComposer extends GenericForwardComposer{
public void doAfterCompose(Component comp) throws Exception {
super.doAfterCompose(comp);
}
public void onClick$btn(Event e) throws InterruptedException{
Messagebox.show("Hi btn");
}
}
Expense.javajavapackage org.novelerp.model;
import java.util.Date;
import org.zkoss.util.media.Media;
public class Expense {
public String viewattachment_image="css/images/view_attachment.png";
public String delete_image="css/images/DeleteRed.png";
public Expense()
{
viewattachment_image="css/images/view_attachment.png";
delete_image="css/images/DeleteRed.png";
}
private int attachment_ID;
private String title;
private Date exDate;
private int charge_ID;
private BigDecimal amount;
private String remarks;
private int expenseID;
private boolean isSubmitted;
private boolean isApproved;
private String isExpReqApproved; //for radio button
private String isReimbReqApproved; //for radio button
private String isPettyCashApproved;
private String isReimbHODApproved; //for radio button
private Charge charge;
private InternalOrder ioSelected;
private int currentLevel;
private FinancialMonth fin;
private String Month_Of_Exp;
private int period_id;
private String email;
private String rtgs_status;
private String grade;
private String remark_limit;
private String department_desc;
private String io;
private String empseach;
private String empseach_edp;
private String empseachreimb;
private String empName;
private String reimbRemark;
private BigDecimal reimbAmt = BigDecimal.ZERO;
private BigDecimal wrtOffAmt = BigDecimal.ZERO;
private BigDecimal remainAmt = BigDecimal.ZERO;
private int reimberse_ID;
private int reimberseLine_ID;
private String documentNo;
private String errorClass="";
private boolean reimburse;
private boolean submit;
private boolean isshowVoucher = false;
private String iscashierapproved;
private String appRemark;
private int emp_ID;
private String selectedFileName;
private boolean reimbSubmit;
private boolean isReimbSubmitted;
private boolean isReimbApproved;
private boolean isHODapprove; //added by satheesh
private boolean isreimpaid;
private boolean ispettypaid;
private boolean isreportshow;
private String approvedamount;
private String expapprovedamount;
private String claimtype;
private boolean isReimReportShow;
private boolean isExpensReportShow;
private String reimbDocumentNo;
private int reimbCurrentLevel;
private boolean isapprovedR;
private String rAppRemark;
private int reimbEmpID;
private String status;
private String edp_no;
private String location_name;
private String cost_cetre;
private String account;
private Media media1[];
private String processID;
private String createdDate;
private String ledgerCode;
private String costCenterNew;
private String voucher_no;
private String budget_head;
private String company_name;
/*private boolean openable=false;
private boolean cloable=true;*/
public int getReimbEmpID() {
return reimbEmpID;
}
public void setReimbEmpID(int reimbEmpID) {
this.reimbEmpID = reimbEmpID;
}
public boolean isIsapprovedR() {
return isapprovedR;
}
public void setIsapprovedR(boolean isapprovedR) {
this.isapprovedR = isapprovedR;
}
public String getrAppRemark() {
return rAppRemark;
}
public void setrAppRemark(String rAppRemark) {
this.rAppRemark = rAppRemark;
}
public int getReimbCurrentLevel() {
return reimbCurrentLevel;
}
public void setReimbCurrentLevel(int reimbCurrentLevel) {
this.reimbCurrentLevel = reimbCurrentLevel;
}
public String getReimbDocumentNo() {
return reimbDocumentNo;
}
public void setReimbDocumentNo(String reimbDocumentNo) {
this.reimbDocumentNo = reimbDocumentNo;
}
public boolean isReimbSubmit() {
return reimbSubmit;
}
public void setReimbSubmit(boolean reimbSubmit) {
this.reimbSubmit = reimbSubmit;
}
public boolean isReimbSubmitted() {
return isReimbSubmitted;
}
public void setReimbSubmitted(boolean isReimbSubmitted) {
this.isReimbSubmitted = isReimbSubmitted;
}
public boolean isReimbApproved() {
return isReimbApproved;
}
public void setReimbApproved(boolean isReimbApproved) {
this.isReimbApproved = isReimbApproved;
}
public Date getExDate() {
return exDate;
}
public void setExDate(Date exDate) {
this.exDate = exDate;
}
public int getCharge_ID() {
return charge_ID;
}
public void setCharge_ID(int charge_ID) {
this.charge_ID = charge_ID;
}
public BigDecimal getAmount() {
return amount;
}
public void setAmount(BigDecimal amount) {
this.amount = amount;
}
public String getRemarks() {
return remarks;
}
public void setRemarks(String remarks) {
this.remarks = remarks;
}
public int getExpenseID() {
return expenseID;
}
public void setExpenseID(int expenseID) {
this.expenseID = expenseID;
}
public boolean isSubmitted() {
return isSubmitted;
}
public void setSubmitted(boolean isSubmitted) {
this.isSubmitted = isSubmitted;
}
public boolean isApproved() {
return isApproved;
}
public void setApproved(boolean isApproved) {
this.isApproved = isApproved;
}
public Charge getCharge() {
return charge;
}
public void setCharge(Charge charge) {
this.charge = charge;
}
public String getEmpName() {
return empName;
}
public void setEmpName(String empName) {
this.empName = empName;
}
public String getReimbRemark() {
return reimbRemark;
}
public void setReimbRemark(String reimbRemark) {
this.reimbRemark = reimbRemark;
}
public BigDecimal getReimbAmt() {
return reimbAmt;
}
public void setReimbAmt(BigDecimal reimbAmt) {
this.reimbAmt = reimbAmt;
}
public BigDecimal getWrtOffAmt() {
return wrtOffAmt;
}
public void setWrtOffAmt(BigDecimal wrtOffAmt) {
this.wrtOffAmt = wrtOffAmt;
}
public BigDecimal getRemainAmt() {
return remainAmt;
}
public void setRemainAmt(BigDecimal remainAmt) {
this.remainAmt = remainAmt;
}
public int getReimberse_ID() {
return reimberse_ID;
}
public void setReimberse_ID(int reimberse_ID) {
this.reimberse_ID = reimberse_ID;
}
public int getReimberseLine_ID() {
return reimberseLine_ID;
}
public void setReimberseLine_ID(int reimberseLine_ID) {
this.reimberseLine_ID = reimberseLine_ID;
}
public String getDocumentNo() {
return documentNo;
}
public void setDocumentNo(String documentNo) {
this.documentNo = documentNo;
}
public String getErrorClass() {
return errorClass;
}
public void setErrorClass(String errorClass) {
this.errorClass = errorClass;
}
public boolean isReimburse() {
return reimburse;
}
public void setReimburse(boolean reimburse) {
this.reimburse = reimburse;
}
public boolean isSubmit() {
return submit;
}
public void setSubmit(boolean submit) {
this.submit = submit;
}
public int getCurrentLevel() {
return currentLevel;
}
public void setCurrentLevel(int currentLevel) {
this.currentLevel = currentLevel;
}
public String getAppRemark() {
return appRemark;
}
public void setAppRemark(String appRemark) {
this.appRemark = appRemark;
}
public int getEmp_ID() {
return emp_ID;
}
public void setEmp_ID(int emp_ID) {
this.emp_ID = emp_ID;
}
public String getIsExpReqApproved() {
return isExpReqApproved;
}
public void setIsExpReqApproved(String isExpReqApproved) {
this.isExpReqApproved = isExpReqApproved;
}
public String getIsReimbReqApproved() {
return isReimbReqApproved;
}
public void setIsReimbReqApproved(String isReimbReqApproved) {
this.isReimbReqApproved = isReimbReqApproved;
}
public boolean isHODapprove() {
return isHODapprove;
}
public void setHODapprove(boolean isHODapprove) {
this.isHODapprove = isHODapprove;
}
public String getIsReimbHODApproved() {
return isReimbHODApproved;
}
public void setIsReimbHODApproved(String isReimbHODApproved) {
this.isReimbHODApproved = isReimbHODApproved;
}
public boolean isReimReportShow() {
return isReimReportShow;
}
public void setReimReportShow(boolean isReimReportShow) {
this.isReimReportShow = isReimReportShow;
}
public boolean getIsreimpaid() {
return isreimpaid;
}
public void setIsreimpaid(boolean isreimpaid) {
this.isreimpaid = isreimpaid;
}
public boolean isIsreportshow() {
return isreportshow;
}
public void setIsreportshow(boolean isreportshow) {
this.isreportshow = isreportshow;
}
public String getApprovedamount() {
return approvedamount;
}
public boolean isExpensReportShow() {
return isExpensReportShow;
}
public void setExpensReportShow(boolean isExpensReportShow) {
this.isExpensReportShow = isExpensReportShow;
}
public void setApprovedamount(String approvedamount) {
this.approvedamount = approvedamount;
}
public String getExpapprovedamount() {
return expapprovedamount;
}
public void setExpapprovedamount(String expapprovedamount) {
this.expapprovedamount = expapprovedamount;
}
public boolean getIspettypaid() {
return ispettypaid;
}
public void setIspettypaid(boolean ispettypaid) {
this.ispettypaid = ispettypaid;
}
public String getIsPettyCashApproved() {
return isPettyCashApproved;
}
public void setIsPettyCashApproved(String isPettyCashApproved) {
this.isPettyCashApproved = isPettyCashApproved;
}
public int getPeriod_id() {
return period_id;
}
public void setPeriod_id(int period_id) {
this.period_id = period_id;
}
public String getClaimtype() {
return claimtype;
}
public void setClaimtype(String claimtype) {
this.claimtype = claimtype;
}
public String getEmpseach() {
return empseach;
}
public void setEmpseach(String empseach) {
this.empseach = empseach;
}
public String getEmpseachreimb() {
return empseachreimb;
}
public void setEmpseachreimb(String empseachreimb) {
this.empseachreimb = empseachreimb;
}
public FinancialMonth getFin() {
return fin;
}
public void setFin(FinancialMonth fin) {
this.fin = fin;
}
public String getMonth_Of_Exp() {
return Month_Of_Exp;
}
public void setMonth_Of_Exp(String month_Of_Exp) {
Month_Of_Exp = month_Of_Exp;
}
public int getAttachment_ID() {
return attachment_ID;
}
public void setAttachment_ID(int attachment_ID) {
this.attachment_ID = attachment_ID;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getStatus() {
return status;
}
public void setStatus(String status) {
this.status = status;
}
public String getEdp_no() {
return edp_no;
}
public void setEdp_no(String edp_no) {
this.edp_no = edp_no;
}
public String getLocation_name() {
return location_name;
}
public void setLocation_name(String location_name) {
this.location_name = location_name;
}
public String getCost_cetre() {
return cost_cetre;
}
public void setCost_cetre(String cost_cetre) {
this.cost_cetre = cost_cetre;
}
public String getEmpseach_edp() {
return empseach_edp;
}
public void setEmpseach_edp(String empseach_edp) {
this.empseach_edp = empseach_edp;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getRtgs_status() {
return rtgs_status;
}
public void setRtgs_status(String rtgs_status) {
this.rtgs_status = rtgs_status;
}
public String getGrade() {
return grade;
}
public void setGrade(String grade) {
this.grade = grade;
}
public String getRemark_limit() {
return remark_limit;
}
public void setRemark_limit(String remark_limit) {
this.remark_limit = remark_limit;
}
public String getAccount() {
return account;
}
public void setAccount(String account) {
this.account = account;
}
public String getSelectedFileName() {
return selectedFileName;
}
public void setSelectedFileName(String selectedFileName) {
this.selectedFileName = selectedFileName;
}
public Media[] getMedia1() {
return media1;
}
public void setMedia1(Media[] media1) {
this.media1 = media1;
}
public String getProcessID() {
return processID;
}
public void setProcessID(String processID) {
this.processID = processID;
}
public String getCreatedDate() {
return createdDate;
}
public void setCreatedDate(String createdDate) {
this.createdDate = createdDate;
}
public String getDepartment_desc() {
return department_desc;
}
public void setDepartment_desc(String department_desc) {
this.department_desc = department_desc;
}
public String getIo() {
return io;
}
public void setIo(String io) {
this.io = io;
}
public boolean isIsshowVoucher() {
return isshowVoucher;
}
public void setIsshowVoucher(boolean isshowVoucher) {
this.isshowVoucher = isshowVoucher;
}
public String getIscashierapproved() {
return iscashierapproved;
}
public void setIscashierapproved(String iscashierapproved) {
this.iscashierapproved = iscashierapproved;
}
public String getLedgerCode() {
return ledgerCode;
}
public void setLedgerCode(String ledgerCode) {
this.ledgerCode = ledgerCode;
}
public String getCostCenterNew() {
return costCenterNew;
}
public void setCostCenterNew(String costCenterNew) {
this.costCenterNew = costCenterNew;
}
public String getVoucher_no() {
return voucher_no;
}
public void setVoucher_no(String voucher_no) {
this.voucher_no = voucher_no;
}
public String getBudget_head() {
return budget_head;
}
public void setBudget_head(String budget_head) {
this.budget_head = budget_head;
}
public String getCompany_name() {
return company_name;
}
public void setCompany_name(String company_name) {
this.company_name = company_name;
}
public InternalOrder getIoSelected() {
return ioSelected;
}
public void setIoSelected(InternalOrder ioSelected) {
this.ioSelected = ioSelected;
}
public String getViewattachment_image() {
return viewattachment_image;
}
public void setViewattachment_image(String viewattachment_image) {
this.viewattachment_image = viewattachment_image;
}
public String getDelete_image() {
return delete_image;
}
public void setDelete_image(String delete_image) {
this.delete_image = delete_image;
}
/*public boolean isOpenable() {
return openable;
}
public void setOpenable(boolean openable) {
this.openable = openable;
}
public boolean isCloable() {
return cloable;
}
public void setCloable(boolean cloable) {
this.cloable = cloable;
}*/
}