gpt4 book ai didi

java - 在 zk 中使用带有 mvvm 模型的模板时,静态行未在网格中渲染

转载 作者:行者123 更新时间:2023-12-01 13:49:52 26 4
gpt4 key购买 nike

<grid vflex="1" model="@bind(vm.getModel())">
<columns menupopup="auto">
<column label="Name" sort="auto(name)" />
<column label="Type" sort="auto(type)" />
</columns>
<rows>
<row>
<button label="Left" /> // This do not render
<label value="Right" /> // This do not render
</row>
<template name="model">
<row>
<label value="@bind(each.name)" />
<label value="@bind(each.type)" />
</row>
</template>
</rows>
</grid>

我的网格有两列。

第一行是静态的,其余行使用模板呈现。结果网格不会渲染静态行...它会很好地渲染模板化行..为什么 Zk 不渲染静态行?

最佳答案

我以前也遇到过这样的问题。问题的核心在于ZK提供了两种方法来设置grid的内容。 ,这适用于listbox , tree

一种方法是手动添加 row组件到您的grid要么在 ZUL 中(就像您在这里所做的那样),要么在 Java 中使用类似 myGrid.getRows().getChildren().add(myRow); 的内容。 .

另一种设置grid内容的方法就是利用ZK的模型概念。

不幸的是,正如您所发现的,这两个概念是相互排斥的 - 它们无法组合。当您考虑模型的工作原理时,这是有道理的。如果您要向模型添加新对象,它将显示为新的 rowgrid 。同样,如果您要从模型中删除一个对象,它对应的是 row将从 grid 中消失。因此,grid其功能是渲染模型中所有对象的实时 View 。您在 ZUL 中硬编码的行不由模型中的对象表示,因此不会呈现。

我为您看到了两个好的解决方案,第一个是合并两个概念:为什么需要这个静态行?不能在模型中表示为对象吗?如果不是,第二个解决方案是重新考虑您正在做的事情。我怀疑这一行不属于网格,如果将其移到网格之外,您会获得更好的 UI 和 UX 体验。如果您有特定的 UI 场景想要反馈,ux.stackexchange.com网站就是您要去的地方。

关于java - 在 zk 中使用带有 mvvm 模型的模板时,静态行未在网格中渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20047055/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com