0

Sync grid column visible state in client/server side when show/hide column through menupopup

asked 2016-11-01 19:06:19 +0800

sergeymd gravatar image sergeymd
1 1

updated 2016-11-03 08:37:23 +0800

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>
delete flag offensive retag edit

2 Answers

Sort by ยป oldest newest most voted
0

answered 2016-11-20 18:20:46 +0800

sergeymd gravatar image sergeymd
1 1

Thnx Darksu

It help me.

link publish delete flag offensive edit
0

answered 2016-11-06 09:00:36 +0800

Darksu gravatar image Darksu
1991 1 4

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

link publish delete flag offensive edit
Your answer
Please start posting your answer anonymously - your answer will be saved within the current session and published after you log in or create a new account. Please try to give a substantial answer, for discussions, please use comments and please do remember to vote (after you log in)!

[hide preview]

Question tools

Follow
1 follower

RSS

Stats

Asked: 2016-11-01 19:06:19 +0800

Seen: 41 times

Last updated: Nov 20 '16

Support Options
  • Email Support
  • Training
  • Consulting
  • Outsourcing
Learn More