0

我需要按行显示模型中的对象,每行有两个模型。在我的 zul 文件中,我必须将模型分成两组。如何使用 foreach、foreachstatus 或 template ?我正在使用 zk 网格

4

2 回答 2

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>
于 2014-07-17T22:29:05.407 回答
0

问候,AFAIK,您只能将 1 个模型应用于您的网格..当然您可以在控制器端操作它但是,如果您想使用模板组件了解迭代的元素索引,请使用 @load( varName Status.index ) 例子:

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

然后在模板内:

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

它会输出模型内元素的位置

更多信息在这里

于 2014-07-17T10:02:22.730 回答