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 AMlink2772-8.5.1.2
1guest66.102.6.250fo83a2Aug 4, 2018 1:58:21 AMlinkresources
index.zulzul<?xml version="1.0" encoding="UTF-8"?>
<!--
B80-ZK-2772-2.zul
Purpose:
Description:
History:
Tue Sep 22 13:40:53 CST 2015, Created by jumperchen
Copyright (C) 2015 Potix Corporation. All Rights Reserved.
-->
<zk>
<vlayout>
<label multiline="true">
Grid Test 2, test steps as follows.
1. Sorting the Column 6 by clicking its title. (The column width for each column should stay the same as before)
2. Scroll to the end of the right for the frozen column, and then sorting the Column 10.
All the column width should stay as the same as before.
3. Resize anyone of the columns (not the frozen columns), and sorting its column, the width of each column should stay the same as before)
</label>
<grid apply="org.zkoss.bind.BindComposer"
viewModel="@id('vm') @init('pkg$.TestComposer')"
height="400px"
span="true"
sizedByContent="true"
model="@load(vm.customers)">
<custom-attributes org.zkoss.zul.frozen.smooth="false"/>
<auxhead>
<auxheader label="First 5 Columns" colspan="5"/>
<auxheader label="Next 15 Columns" colspan="15"/>
</auxhead>
<columns sizable="true" menupopup="auto">
<column hflex="min" label="Column 1" sort="auto(name0)"/>
<column hflex="min" label="Column 2" sort="auto(name1)"/>
<column hflex="min" label="Column 3" sort="auto(name2)"/>
<column hflex="min" label="Column 4" sort="auto(name3)"/>
<column hflex="min" label="Column 5" sort="auto(name4)"/>
<column label="Column 6" sort="auto(name5)"/>
<column label="Column 7" sort="auto(name6)"/>
<column label="Column 8" sort="auto(name7)"/>
<column label="Column 9" sort="auto(name8)"/>
<column label="Column 10" sort="auto(name9)"/>
<column label="Column 6" sort="auto(name5)"/>
<column label="Column 7" sort="auto(name6)"/>
<column label="Column 8" sort="auto(name7)"/>
<column label="Column 9" sort="auto(name8)"/>
<column label="Column 10" sort="auto(name9)"/>
<column label="Column 6" sort="auto(name5)"/>
<column label="Column 7" sort="auto(name6)"/>
<column label="Column 8" sort="auto(name7)"/>
<column label="Column 9" sort="auto(name8)"/>
<column label="Column 10" sort="auto(name9)"/>
</columns>
<frozen columns="5"/>
<template name="model">
<row>
<cell>
<label value="@load(each.name0)"/>
</cell>
<cell>
<label value="@load(each.name1)"/>
</cell>
<cell>
<label value="@load(each.name2)"/>
</cell>
<cell>
<label value="@load(each.name3)"/>
</cell>
<cell>
<label value="@load(each.name4)"/>
</cell>
<cell>
<label value="@load(each.name5)"/>
</cell>
<cell>
<label value="@load(each.name6)"/>
</cell>
<cell>
<label value="@load(each.name7)"/>
</cell>
<cell>
<label value="@load(each.name8)"/>
</cell>
<cell>
<label value="@load(each.name9)"/>
</cell>
<cell>
<label value="@load(each.name5)"/>
</cell>
<cell>
<label value="@load(each.name6)"/>
</cell>
<cell>
<label value="@load(each.name7)"/>
</cell>
<cell>
<label value="@load(each.name8)"/>
</cell>
<cell>
<label value="@load(each.name9)"/>
</cell>
<cell>
<label value="@load(each.name5)"/>
</cell>
<cell>
<label value="@load(each.name6)"/>
</cell>
<cell>
<label value="@load(each.name7)"/>
</cell>
<cell>
<label value="@load(each.name8)"/>
</cell>
<cell>
<label value="@load(each.name9)"/>
</cell>
</row>
</template>
<foot>
<footer/>
<footer/>
<footer/>
<footer/>
<footer/>
<footer label="Footer"/>
<footer label="Footer"/>
<footer label="Footer"/>
<footer label="Footer"/>
<footer label="Footer"/>
<footer label="Footer"/>
<footer label="Footer"/>
<footer label="Footer"/>
<footer label="Footer"/>
<footer label="Footer"/>
<footer label="Footer"/>
<footer label="Footer"/>
<footer label="Footer"/>
<footer label="Footer"/>
<footer label="Footer"/>
</foot>
</grid>
</vlayout>
</zk>
TestComposer.javajavaimport org.zkoss.bind.annotation.Init;
import org.zkoss.zul.ListModelList;
/**
* @author jumperchen
*/
public class TestComposer
{
private ListModelList<Customer> customers;
@Init
public void init()
{
this.customers = new ListModelList<Customer>();
for(int i = 0; i < 20; i++)
this.customers.add(new Customer("Name " + i, "Name " + i, "Name " + i, "Name " + i, "Name " + i, "Name " + i, "Long long long long long long long long long long long long long name " + i, "Name " + i, "Name " + i, "Name " + i));
}
public ListModelList<Customer> getCustomers()
{
return customers;
}
public static class Customer
{
private String name0;
private String name1;
private String name2;
private String name3;
private String name4;
private String name5;
private String name6;
private String name7;
private String name8;
private String name9;
public Customer() {}
public Customer(String name0, String name1, String name2, String name3, String name4, String name5, String name6, String name7, String name8, String name9)
{
this.name0 = name0;
this.name1 = name1;
this.name2 = name2;
this.name3 = name3;
this.name4 = name4;
this.name5 = name5;
this.name6 = name6;
this.name7 = name7;
this.name8 = name8;
this.name9 = name9;
}
public String getName0()
{
return name0;
}
public void setName0(String name0)
{
this.name0 = name0;
}
public String getName1()
{
return name1;
}
public void setName1(String name1)
{
this.name1 = name1;
}
public String getName2()
{
return name2;
}
public void setName2(String name2)
{
this.name2 = name2;
}
public String getName3()
{
return name3;
}
public void setName3(String name3)
{
this.name3 = name3;
}
public String getName4()
{
return name4;
}
public void setName4(String name4)
{
this.name4 = name4;
}
public String getName5()
{
return name5;
}
public void setName5(String name5)
{
this.name5 = name5;
}
public String getName6()
{
return name6;
}
public void setName6(String name6)
{
this.name6 = name6;
}
public String getName7()
{
return name7;
}
public void setName7(String name7)
{
this.name7 = name7;
}
public String getName8()
{
return name8;
}
public void setName8(String name8)
{
this.name8 = name8;
}
public String getName9()
{
return name9;
}
public void setName9(String name9)
{
this.name9 = name9;
}
}
}