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 AMlink20160225-taishin-support-listbox-sample
2christopherszu114.34.173.1993upnvpqMar 2, 2016 3:26:01 AMlinkresources
index.zulzul<?page title="new page title" contentType="text/html;charset=UTF-8"?>
<zk>
<window apply="pkg$.TestComposer">
<tabbox>
<tabs width="100%">
<tab id="subjectTypeItem" label="授信科目" />
<tab id="subjectTypeSub" label="授信子類" />
<tab id="subjectTypeKind" label="授信種類" />
<tab id="subjectTypeGroup" label="集團餘額控管" />
</tabs>
<tabpanels>
<!-- 授信科目 -->
<tabpanel>
<panel>
<panelchildren>
<grid>
<rows>
<row>
<label value="產品類別" />
<listbox id="typeItem" width="100px" mold="select" sclass="mf" />
<label value="節點型態" />
<listbox id="itemNodeType" width="100px" mold="select" sclass="mf" />
</row>
</rows>
</grid>
</panelchildren>
</panel>
</tabpanel>
<!-- 授信子類 -->
<tabpanel>
<panel>
<panelchildren>
<grid>
<rows>
<row>
<label value="授信科目" />
<listbox height="280px" id="itemSub" sclass="mf">
<listhead>
<listheader id="itemSubAll" label="全選 " />
</listhead>
</listbox>
</row>
</rows>
</grid>
</panelchildren>
</panel>
</tabpanel>
<!-- 授信種類 -->
<tabpanel>
<panel>
<panelchildren>
<grid>
<rows>
<row>
<label value="授信子類" />
<listbox height="280px" id="itemKind" sclass="mf">
<listhead>
<listheader id="itemKindAll" label="全選 " />
</listhead>
</listbox>
<label value="節點型態" />
<listbox id="kindNodeType" width="100px" mold="select" sclass="mf" />
</row>
</rows>
</grid>
</panelchildren>
</panel>
</tabpanel>
<!-- 集團餘額控管 -->
<tabpanel>
<panel>
<panelchildren>
<grid>
<rows>
<row>
<label value="授信種類" />
<listbox height="280px" id="itemGroup" sclass="mf">
<listhead>
<listheader id="itemGroupAll" label="全選 " />
</listhead>
</listbox>
</row>
</rows>
</grid>
</panelchildren>
</panel>
</tabpanel>
</tabpanels>
</tabbox>
</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.*;
public class TestComposer extends GenericForwardComposer implements ListitemRenderer {
public void doAfterCompose(Component comp) throws Exception {
super.doAfterCompose(comp);
}
/** 頁籤 */
private Tab subjectTypeItem; // 授信科目(SubjectType FAC_ITEM)
private Tab subjectTypeSub; // 授信子類(SubjectType FAC_SUB )
private Tab subjectTypeKind; // 授信種類(SubjectType FAC_KIND )
private Tab subjectTypeGroup; // 集團餘額控管(SubjectType FAC_GROUP )
// SubjectType Item 授信科目
/** 授信科目-產品類別 */
private Listbox typeItem; // 授信科目-產品類別
/** 授信科目-節點型態 */
private Listbox itemNodeType; // 授信科目-節點型態
/** 授信種類-節點型態 */
private Listbox kindNodeType; // 授信種類-節點型態
// SubjectType Sub 授信子類
/** 可承作授信科目項目(單/複選) */
private Listbox itemSub; // 可承作授信科目項目(單/複選)
// SubjectType Kind 授信種類
/** 可承作授信子類項目(單/複選) */
private Listbox itemKind; // 可承作授信子類項目(單/複選)
// SubjectType Group 集團餘額控管
/** 可承做授信種類項目(複選) */
private Listbox itemGroup; // 可承做授信種類項目(複選)
// ***********************************************************************
// Method Summary
// ***********************************************************************
/**
* <b>初始化</b>
* <p>
* 取得必要資訊,設定畫面資料
*/
public void doInit() {
// 授信科目-產品類別
Iterator<Entry<String, String>> it = FacSubjectCodeCD.getTypeMap().entrySet().iterator();
while (it.hasNext()) {
Entry<String, String> en = (Entry<String, String>) it.next();
String key = en.getKey() == null ? "" : en.getKey().toString();
String value = en.getValue() == null ? "" : en.getValue().toString();
typeItem.appendItem(key + (value.length() > 0 ? ":" + value : ""), key);
}
// 授信科目-節點型態
Iterator<Entry<String, String>> itemNodeTypeIt = FacSubjectCodeCD.getItemNodeTypeMap().entrySet().iterator();
while(itemNodeTypeIt.hasNext()) {
Entry<String, String> en = (Entry<String, String>) itemNodeTypeIt.next();
String key = en.getKey() == null ? "" : en.getKey().toString();
String value = en.getValue() == null ? "" : en.getValue().toString();
itemNodeType.appendItem(key + (value.length() > 0 ? ":" + value : ""), key);
}
// 授信種類-節點型態
Iterator<Entry<String, String>> kindNodeTypeIt = FacSubjectCodeCD.getKindNodeTypeMap().entrySet().iterator();
while(kindNodeTypeIt.hasNext()) {
Entry<String, String> en = (Entry<String, String>) kindNodeTypeIt.next();
String key = en.getKey() == null ? "" : en.getKey().toString();
String value = en.getValue() == null ? "" : en.getValue().toString();
kindNodeType.appendItem(key + (value.length() > 0 ? ":" + value : ""), key);
}
reset();
showRowsBySubjectType(FacSubjectCodeCD.K_SUBJECT_TYPE_FAC_ITEM);
subjectType.setValue(FacSubjectCodeCD.K_SUBJECT_TYPE_FAC_ITEM);
}
public void onCreate(Event event) {
}
/**
* <b>輸出畫面</b>
* <p>
* 將傳入的物件轉型成授信科目代碼檔輸出並設定畫面
*/
public void render(Listitem listitem, Object obj, int index) throws WebOSException {
FacSubjectCodeCD data = (FacSubjectCodeCD) obj;
new Listcell(data.getCode() + " " + data.getName()).setParent(listitem);
Listcell listcell = new Listcell(data.getFacSubjectCodeCdSeq().toString());
listcell.setParent(listitem);
listcell.setVisible(false);
listitem.setValue(data);
}
/**
* <b>資料重置</b>
* <p>
* 調整畫面屬性
*/
public void reset() {
nameItem.setValue(null);
this.mappingSelectItem(typeItem, "");
typeItem.invalidate();
this.mappingSelectItem(itemNodeType, "");
itemNodeType.invalidate();
itemSub.clearSelection();
itemSub.invalidate();
codeKind.setValue(null);
codeKind.setReadonly(false);
nameKind.setValue(null);
itemKind.clearSelection();
itemKind.invalidate();
this.mappingSelectItem(kindNodeType, "");
kindNodeType.invalidate();
nameGroup.setValue(null);
itemGroup.clearSelection();
itemGroup.invalidate();
updateBtn.setDisabled(true);
cancelBtn.setDisabled(true);
}
/**
* <b>顯示授信科目資料</b>
* <p>
* 依據授信科目代碼不同,呼叫個自Renderer畫出資料
*
* @param facSubjectType 授信科目代碼
* @throws WebOSException
*/
public void showRowsBySubjectType(String facSubjectType) throws WebOSException {
if (facSubjectType != null && !facSubjectType.equals("")) {
List<FacSubjectCodeCD> result = new ArrayList<FacSubjectCodeCD>();
result = (List<FacSubjectCodeCD>) iWSSubjectService.getFacSubjectCodeCDListByType(facSubjectType, null);
if (facSubjectType.equals(FacSubjectCodeCD.K_SUBJECT_TYPE_FAC_ITEM)) {// 授信科目
subjectTypeItemList.setModel(new SimpleListModel(result));
subjectTypeItemList.setRowRenderer(new FacilitySubjectCodeCDRowRenderer(this));
subjectTypeItemList.renderAll();
} else if (facSubjectType.equals(FacSubjectCodeCD.K_SUBJECT_TYPE_FAC_SUB)) {// 授信子類
subjectTypeSubList.setModel(new SimpleListModel(result));
subjectTypeSubList.setRowRenderer(new FacilitySubjectCodeCDRowRenderer(this));
subjectTypeSubList.renderAll();
} else if (facSubjectType.equals(FacSubjectCodeCD.K_SUBJECT_TYPE_FAC_KIND)) {// 授信種類
subjectTypeKindList.setModel(new SimpleListModel(result));
subjectTypeKindList.setRowRenderer(new FacilitySubjectCodeCDRowRenderer(this));
subjectTypeKindList.renderAll();
} else if (facSubjectType.equals(FacSubjectCodeCD.K_SUBJECT_TYPE_FAC_GROUP)) {// 集團餘額控管
subjectTypeGroupList.setModel(new SimpleListModel(result));
subjectTypeGroupList.setRowRenderer(new FacilitySubjectCodeCDRowRenderer(this));
subjectTypeGroupList.renderAll();
}
}
}
/**
* <b>顯示可承作授信科目資料</b>
* <p>
* 依據授信科目代碼不同,呼叫個自Renderer畫出資料
*
* @param facSubjectType 授信科目代碼
* @throws WebOSException
*/
public void showSelectItemsBySubjectType(String facSubjectType) throws WebOSException {
if (facSubjectType != null && !facSubjectType.equals("")) {
List<FacSubjectCodeCD> result = new ArrayList<FacSubjectCodeCD>();
result = (List<FacSubjectCodeCD>) iWSSubjectService.getFacSubjectCodeCDListByType(facSubjectType, IWSSubjectService.K_STATUS_VALID);
if (facSubjectType.equals(FacSubjectCodeCD.K_SUBJECT_TYPE_FAC_ITEM)) {
itemSub.setModel(new SimpleListModel(result));
itemSub.setItemRenderer(this);
itemSub.setMultiple(true);
itemSub.setCheckmark(true);
itemSub.renderAll();
} else if (facSubjectType.equals(FacSubjectCodeCD.K_SUBJECT_TYPE_FAC_SUB)) {
itemKind.setModel(new SimpleListModel(result));
itemKind.setItemRenderer(this);
itemKind.setMultiple(true);
itemKind.setCheckmark(true);
} else if (facSubjectType.equals(FacSubjectCodeCD.K_SUBJECT_TYPE_FAC_KIND)) {
itemGroup.setModel(new SimpleListModel(result));
itemGroup.setItemRenderer(this);
itemGroup.setMultiple(true);
itemGroup.setCheckmark(true);
}
}
}
// ***********************************************************************
// onClick
// ***********************************************************************
/**
* <b>當按下維護 [授信科目 ] 的頁簽 按鈕(tab)</b>
* <p>
* 一、顯示授信科目資料<br>
* 二、授信科目代碼類別<br>
* 三、資料重置
*
* @param event
*/
public void onClick$subjectTypeItem(Event event) {
// initial Grid
showRowsBySubjectType(FacSubjectCodeCD.K_SUBJECT_TYPE_FAC_ITEM);
subjectType.setValue(FacSubjectCodeCD.K_SUBJECT_TYPE_FAC_ITEM);
reset();
}
/**
* <b>當按下維護 [授信子類 ] 的頁簽 按鈕(tab)</b>
* <p>
*
* 一、顯示授信科目資料<br>
* 二、授信科目代碼類別<br>
* 三、資料重置
*
* @param event
*/
public void onClick$subjectTypeSub(Event event) {
// initial Grid
showRowsBySubjectType(FacSubjectCodeCD.K_SUBJECT_TYPE_FAC_SUB);
showSelectItemsBySubjectType(FacSubjectCodeCD.K_SUBJECT_TYPE_FAC_ITEM);
subjectType.setValue(FacSubjectCodeCD.K_SUBJECT_TYPE_FAC_SUB);
reset();
}
/**
* <b>當按下維護 [授信種類 ] 的頁簽 按鈕(tab)</b>
* <p>
* 一、顯示授信科目資料<br>
* 二、授信科目代碼類別<br>
* 三、資料重置
*
* @param event
*/
public void onClick$subjectTypeKind(Event event) {
// initial Grid
showRowsBySubjectType(FacSubjectCodeCD.K_SUBJECT_TYPE_FAC_KIND);
showSelectItemsBySubjectType(FacSubjectCodeCD.K_SUBJECT_TYPE_FAC_SUB);
subjectType.setValue(FacSubjectCodeCD.K_SUBJECT_TYPE_FAC_KIND);
reset();
}
/**
* <b>當按下維護 [集團餘額控管 ] 的頁簽 按鈕(tab)</b>
* <p>
*
* 一、顯示授信科目資料<br>
* 二、授信科目代碼類別<br>
* 三、資料重置
*
* @param event
*/
public void onClick$subjectTypeGroup(Event event) {
// initial Grid
showRowsBySubjectType(FacSubjectCodeCD.K_SUBJECT_TYPE_FAC_GROUP);
showSelectItemsBySubjectType(FacSubjectCodeCD.K_SUBJECT_TYPE_FAC_KIND);
subjectType.setValue(FacSubjectCodeCD.K_SUBJECT_TYPE_FAC_GROUP);
reset();
}
}