我需要按行显示模型中的对象,每行有两个模型。在我的 zul 文件中,我必须将模型分成两组。如何使用 foreach、foreachstatus 或 template ?我正在使用 zk 网格
问问题
3783 次
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 回答