gpt4 book ai didi

java - ZK 模型的 NotifyChange 部分

转载 作者:行者123 更新时间:2023-11-30 07:04:04 24 4
gpt4 key购买 nike

在我的 zul 中,我有一个网格,我正在为它使用两个命名模板。我在我的 zul 中使用了我的 VM 中的模型,我在网格模板中使用了该模型。现在我正在 VM 的线程中修改模型,线程完成后,我从 VM postNOtifyingChange。问题是我只想修改 zul 中模型的一部分(已被线程修改)。因为如果其他部分也在 View 中刷新,用户所做的更改将在 postNotifyChange 触发时丢失。zul代码是:

 <window apply="org.zkoss.bind.BindComposer"
viewModel="@id('vm') @init('The View Model')"
validationMessages="@id('vmsgs')">
<grid id="componentgrid" height="900px" model="@load(vm.tablefields) @template((vm.displayEdit) ? 'editable' : 'noneditable')">
<columns>
<column>Attribute</column>
<column>NOSS</column>
<column>Beacon</column>
</columns>
<rows>
<template name="noneditable">
<row>
<label value="${each.attributename}"></label>
<label value="${each.attributevalue}"></label>
<label value="${each.beaconValue}"></label>


</row>
</template>

<template name="editable">
<row>

<label value="${each.gui_label}"></label>
<zk choose="">
<zk when="${each.enum_map ne null}">
<combobox id="${each.name}" value="${each.value}" width="150px">
<comboitem label="${each.value}" value="${each.key}"
forEach="${each.enum_map}" />
</combobox>
</zk>
<zk when="${each.date == true}">
<datebox id="${each.name}" cols="12" format="short "
value="${each.datevalue}" />
</zk>
<zk>
<textbox id="${each.name}" value="${each.value}" />
</zk>
</zk>
<label value="${each.beaconValue}"></label>

</row>


</template>

</rows>
</grid>
</window>

所以在这里我只想在“${each.beaconValue}”部分进行 NotifyChange。在 ViewMODel 中,我正在做 BindUtils.postNotifyChange(null, null,NNComponentDetailViewModel.this, "tablefields"); 通知此模型中的更改。这种方法正确吗?如何实现仅更改部分模型?或者有没有其他方法,因为我认为 ZK 只允许网格中的一个模型。请提出建议,因为这似乎由于 ZK 框架限制而被阻止。

最佳答案

如果你想更改模型的一部分,你必须说对象已更改。

示例:

BindUtils.postNotifyChange(null, null, oneObjectOfYourModel, "*"); 

或者如果您只想更改“beaconValue”:

BindUtils.postNotifyChange(null, null, oneObjectOfYourModel, "beaconValue");

当然,当你调整几乎所有的对象时,你必须多次调用 notifychanged ,但这是您问题的解决方案。

关于java - ZK 模型的 NotifyChange 部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27867974/

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