<zk>
<grid width="auto" sizedByContent="true" span="1" sclass="tblWithoutHover">
<attribute name="onCreate">
authorPublisherEtcInclude.insertBefore(self, authorBox);
</attribute>
<columns>
<column/>
<column/>
</columns>
<rows>
<row valign="center">
<cell colspan="2"><label use="${authorPublisherComponents.originalFieldsLabel}"/></cell>
</row>
<row valign="center">
<label use="${authorPublisherComponents.titleAuthorOriginalLabel}"/>
<textbox use="${authorPublisherComponents.titleAuthorOriginalTextbox}"/>
</row>
<row valign="center">
<label use="${authorPublisherComponents.mainAuthorOriginalLabel}"/>
<textbox use="${authorPublisherComponents.mainAuthorOriginalTextbox}"/>
</row>
<row valign="center">
<label use="${authorPublisherComponents.mainAuthorResponsibilityLabel}"/>
<selectbox use="${authorPublisherComponents.mainAuthorResponsibilitySelectbox}"/>
</row>
<row valign="center">
<label use="${authorPublisherComponents.authorityDatesOriginalLabel}"/>
<textbox use="${authorPublisherComponents.authorityDatesOriginalTextbox}"/>
</row>
<row valign="center">
<cell>
<label use="${authorPublisherComponents.addMainAuthorsOriginalLabel}"/>
<toolbarbutton use="${authorPublisherComponents.addAuthorButton}"/>
</cell>
<cell id="addAuthorsCell">
<grid id="addAuthorsContainer" model="@bind(ivm.inventory.addAuthorsBeans)">
<columns>
<column/>
<column/>
<column/>
</columns>
<rows>
<row>
<textbox value="@load(xgbfxb.authorName)" onChange="@command('test', component = self, index=s.index)"/>
<button label="Del" onClick="@command('delAuthor', container=addAuthorsContainer, index=modelIndex )">
<custom-attributes modelIndex="${s.index}"/>
</button>
</row>
</rows>
</grid>
<textbox use="${authorPublisherComponents.addMainAuthorsOriginalTextbox}"/>
</cell>
</row>
这是我的 zul 页面的一部分。addAuthorsBeans 是具有字段的类列表。当我更改组合框中的数据时,应用程序为列表中的所有类调用 set 方法,但我希望它只为相应的项目调用。可能吗?或者我应该使用 onChange 事件和 ViewModel 方法施展黑魔法?
编辑(21/12/2013)。它的工作原理是这样的:我有三个项目 1、2、3。然后我为 2 个项目激活 setAuthor。然后应用程序为 2 项调用 setAuthor 方法,然后为 3 项,然后为 1 项,然后在容器中查找此方法。
我有“黑魔法”临时解决方案来创建静态变量并在第一次调用 setAuthor 方法时更改它并在容器中取消阻止它。
但这不是最终的解决方案,因为它消耗更多的资源,而不是它应该如何真正工作。
解决方案:如果您在另一个网格中有带有模型的网格,它的行为会很奇怪。所以只需使用列表框。