首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >zk嵌套forEach

zk嵌套forEach
EN

Stack Overflow用户
提问于 2013-02-24 01:02:42
回答 3查看 2.4K关注 0票数 0

我在zul文件中显示了以下结构,并从Java控制器获得了诊所对象的列表。

我在zul中尝试了几个zk组件,但没有运气。我应该在forEach中使用什么组件

  • ListBox
  • ListItem
  • 网格

这里是需要显示的结构:

代码语言:javascript
复制
For each clinic
{ 
    For each clinic.location 
    { 
        For each (clinic.location.provider) 
        { 
            Output (provider display name) 
        } 
        Output (clinic name) 
        Output (clinic.location address) 
        Output (clinic.locatoin telephone number) 
        Output (clinic.web address)
    }
}
EN

回答 3

Stack Overflow用户

发布于 2013-02-24 08:02:48

正如Darius给出的答案中所解释的,下面是如何将<Grid><rows>组件一起使用的示例

代码语言:javascript
复制
<?page title="Result"?>
<zk>
    <window apply="org.zkoss.bind.BindComposer"
        viewModel="@id('vm') @init('fully.qualified.viewmodel.classname')"
        title="Result Window" border="normal" >
        <div>
            <grid>
                <rows>
                    <row>
                        <listbox model="@bind(vm.listname)">
                            <listhead>
                                <listheader label="Item Name"
                                    style="text-align:center;">
                                </listheader>
                                <listheader label="Attribute Value"
                                    style="text-align:center;">
                                </listheader>
                                <listheader label="Qualifier Value"
                                    style="text-align:center;">
                                </listheader>
                            </listhead>
                            <template name="model" var="item">
                                <listitem value="${item }">
                                    <listcell label="@load(item.name)"
                                        style="text-align:center;">

                                    </listcell>
                                    <listcell
                                        style="text-align:center;">
                                        <textbox
                                            value="@bind(item.attributeValue)"
                                            style="text-align:center;" />

                                    </listcell>
                                    <listcell
                                        label="@load(item.qualifierValue)"
                                        style="text-align:center;">
                                    </listcell>
                                </listitem>
                            </template>
                        </listbox>
                    </row>
                </rows>
            </grid>
        </div>

    </window>
</zk>
票数 1
EN

Stack Overflow用户

发布于 2013-02-24 02:34:56

您可以使用Listbox或Grid。

  • 如果使用Listbox,它将包含Listitem对象
  • 如果使用网格,它将包含一个Row对象,其中包含行对象

在Listitem或Row中添加其他组件:最简单的是Label对象

我注意到您有一个由提供者组成的内部表。对于这些,您可能需要一个嵌套的Grid或Listbox。您还可以使用ZK的详细组件。它将允许您展开以查看内表。

票数 0
EN

Stack Overflow用户

发布于 2015-06-12 17:40:57

要实现这一点,有多种方法。

  • 包含单独的zul文件到模板行,whitch将包含一个具有单独视图模型的网格--这种样式您可以同时显示所有嵌套网格,但它应该并且它将具有更大的数据弹药(因为嵌套网格视图模型的行数==计数)。
  • 包含带有自己的模板的嵌套网格,并将数据模型作为视图模型的参数,并按需显示此网格(按钮单击、行单击等)--在没有性能问题的情况下,这是另一种方式,但您可以同时只显示一个嵌套网格。

最后一句话-只是不

将网格嵌套到网格是一个非常糟糕的设计,因为它很难呈现出来,而且它只适用于小数据。最好的方法,在我看来,是创建两个单独的网格,并排,并显示在第二个网格上的数据,在第一个网格中点击一行后。通过这种方式,您可以实现非常快的gui与性能无关,任何时候都有大量的数据。另一种方法是在网格行上创建一个弹出窗口,惠奇会显示额外的数据,这对你的性能也有很大的影响。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15047560

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档