-
FEATURED COMPONENTS
First time here? Check out the FAQ!
Hi,
Client side visibility state for columns synchronized well for Listbox, but don't for Grid's columns. The following code is extended code from JIRA ZK-2660 (http://tracker.zkoss.org/browse/ZK-2660).
Do anybody know how perform sync for Grid? Thnx!
Code:
<zk>
<zscript><![CDATA[
public class State {
private String id, code, name;
public State(String id, String code, String name) {
super();
this.id = id;
this.code = code;
this.name = name;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
ListModelList statesListModel = new ListModelList();
for (int i = 0; i < 10; i++) {
statesListModel.add(new State("id" + i, "code " + i, "name " + i));
}
]]></zscript>
<window vflex="1">
<vlayout>
<label multiline="true">
1. Hide any column from the menupopup of listheader or columns
2. Click "Show Listheader visibility" or "Show Columns visibility", the visible state should sync with browser
</label>
<button label="Show Listheader visibility">
<attribute name="onClick"><![CDATA[
List headers = head.getChildren();
String message = "Listbox</br>";
for (int i = 0, size = headers.size(); i < size; i++) {
Listheader header = headers.get(i);
message += "Column: " + header.getLabel() + ", Visible:" + header.isVisible() + "<br/>";
}
Clients.showNotification(message);
]]></attribute>
</button>
<listbox mold="paging" model="${statesListModel}" vflex="min">
<listhead id="head" menupopup="auto" columnshide="true">
<listheader width="40px" label="Id" />
<listheader width="150px" label="Code" />
<listheader width="150px" label="Name" /><listheader width="150px" label="url" />
</listhead>
<template name="model">
<listitem>
<listcell label="${each.id}" />
<listcell label="${each.code}" />
<listcell label="${each.name}" />
<listcell><a label="uuuuu"/></listcell>
</listitem>
</template>
</listbox>
<button label="Show Columns visibility">
<attribute name="onClick"><![CDATA[
List headers = headG.getChildren();
String message = "Grid</br>";
for (int i = 0, size = headers.size(); i < size; i++) {
Column header = headers.get(i);
message += "Column: " + header.getLabel() + ", Visible:" + header.isVisible() + "<br/>";
}
Clients.showNotification(message);
]]></attribute>
</button>
<grid model="${statesListModel}">
<columns id="headG" menupopup="auto" columnshide="true">
<column label="Id"/>
<column label="Code" />
<column label="Name"/>
</columns>
<template name="model">
<row>
<label value="${each.id}"/>
<label value="${each.code}"/>
<label value="${each.name}"/>
</row>
</template>
</grid>
</vlayout>
</window>
</zk>
Hello sergeymd,
Please refer to the following fiddle in order to check the visibility:
http://zkfiddle.org/sample/1snibh/2-Columns-visible#source-1
Best Regards,
Darksu
Asked: 2016-11-01 19:06:19 +0800
Seen: 41 times
Last updated: Nov 20 '16
ZK8 Features for MVC - Shadow Elements
The imageCaption of css is not work when open first time on Firefox
zk chart with JFreeChartEngine
A scrollbar error occurs when using the Listbox List Group
Render On Demand ROD how to catch event onRender from listitem