1

anybody can help me using zk (zkoss) framework? I am new in this framework. I want to make a grid / listbox using list of jsonobject. I found no examples that can help me using list of jsonobject to create grid / listbox. I want to create simple listbox like this:

<?page title="Table of Users" contentType="text/html;charset=UTF-8"?>
<?init class="org.zkoss.zkplus.databind.AnnotateDataBinderInit" ?>
<?variable-resolver class="org.zkoss.zkplus.spring.DelegatingVariableResolver"?>
<zk>
<window id="windowUsers" width="500px" apply="${userController}" viewModel="@id('vm')">
    <groupbox mold="3d">
        <caption label="Table of Users" />
        <listbox model="@load(vm.listUser)" width="400px">
            <listhead>
                <listheader label="User Id"/>
                <listheader label="Name"/>
                <listheader label="Address"/>
                <listheader label="Phone"/>
            </listhead>
            <template name="model" var="list">
                <listitem>
                    <listcell label="@load(list.id)" />
                    <listcell label="@load(list.name)" />
                    <listcell label="@load(list.address)" />
                    <listcell label="@load(list.phone)" />
                </listitem>
            </template>
        </listbox>
    </groupbox>
</window>

thank's in advance.

4

2 に答える 2

1

ZK は通常、サーバー上の Java によって評価されるサーバー側のページとして使用されます。したがって、上記の例は通常、サーバー上の Java オブジェクトのリストをレンダリングし、インタラクティブな dhtml としてブラウザーに出力します。説明する図はこちらです。

そのことを念頭に置いて、サーバー上に json オブジェクトのリストはありません。それらをサーバー上で Java オブジェクトとして解析し、Java オブジェクトをページにレンダリングします。ZK には、ブラウザ側のレンダリング エンジンと対話できるようにするための「クライアント側の融合」があります。ただし、これはより高度な機能です。ブラウザ側でプログラミングを行うことなく、ZK を使用してシステム全体を作成できるはずです。ここにそのデモがありますが、私は自分自身を使用したことはありません

(警告:恥知らずなプラグイン)あなたの例のようにオブジェクトのリストをレンダリングして編集する簡単なページを持つ私のデモアプリをチェックしてください。

于 2012-06-10T10:34:31.133 に答える
1

答えてくれてありがとう、ZKについて十分に教えてくれました。次のように、リストボックスに表示される JSON オブジェクトのリストを取得する方法があります。

<listitem forEach="${userController.list}">
    <listcell label="${each.id}" />
    <listcell label="${each.name}" />
    <listcell label="${each.address}" />
    <listcell label="${each.phone}" />
</listitem>
于 2012-06-11T03:45:43.983 に答える