如何在zk中迭代甚至索引的模型?

时间:2014-07-16 12:45:25

标签: zk zk-grid

我需要在行中显示对象,每行有两个模型。在我的zul文件中,我必须以两个为一组对模型进行分组。如何使用foreach,foreachstatus或模板? 我正在使用zk网格

2 个答案:

答案 0 :(得分:0)

电贺, AFAIK你只能在网格上应用1个模型。当然你可以在控制器端操作它 但是,如果您想知道模板组件的迭代元素索引, 使用@load( varName Status.index) 例如:

<template name="model" var="element">

然后在模板中:

<label value="@load(elementStatus.index)" />

并输出模型中元素的位置

更多信息here

答案 1 :(得分:0)

以下是在索引上2个模板之间切换的示例 您只需实现模2并检查1或0。

http://www.zkfiddle.org/sample/2rjaqos/4-MVVM-with-nested-template

该链接的zul代码:

<listbox model="@load(vm.beans)">
        <listhead children="@load(vm.colTitle)">
            <template name="children" var="title">
                <listheader label="@load(title)" />
            </template>
        </listhead>
        <template name="model" var="bean">
            <listitem children="@load(vm.colTitle)  @template(forEachStatus.index lt 1 ? 'fixed' : 'variable')">
                <template name="fixed">
                    <listcell label="@load(bean.title)" />
                </template>
                <template name="variable">
                    <listcell>
                        <checkbox checked="@load(bean.states[forEachStatus.index - 1])"
                            label="@load(bean.states[forEachStatus.index - 1] ? 'true' : 'false')"
                            onCheck="@command('onCheckState', bean=bean, state=self.isChecked(), index=forEachStatus.index - 1)" />
                    </listcell>
                </template>
            </listitem>
        </template>
</listbox>

这里是模数的另一个例子,但有1个模板:
http://zkfiddle.org/sample/2pmngjk/9-Listbox-with-Template

第二个例子的Zul代码:

<zk>
  <window apply="pkg$.FruitProvider">
          <listbox model="${$composer.fruits}">
                  <template name="model">
                          <listitem>
                                  <listcell if="${forEachStatus.index % 2 == 0}">
                                          <textbox value="${each[0]}" />
                                          <textbox value="${each[1]}" />
                                  </listcell>
                                  <listcell unless="${forEachStatus.index % 2 == 0}">
                                          <label value="${each[0]}" />
                                          <label value="${each[1]}" />
                                  </listcell>
                          </listitem>
                  </template>
          </listbox>
  </window>
</zk>