Java 如何刷新选项卡框项目单击上的数据?
我有一个带几个项目的标签盒。我需要在用户单击选项卡时刷新数据。我有在容器中执行刷新的click命令,但我无法创建页面的刷新。这是.zul页面上的项目示例:Java 如何刷新选项卡框项目单击上的数据?,java,zk,Java,Zk,我有一个带几个项目的标签盒。我需要在用户单击选项卡时刷新数据。我有在容器中执行刷新的click命令,但我无法创建页面的刷新。这是.zul页面上的项目示例: <row valign="top"> <label value="Title with diacritics" zclass="field_label"/> <textbox value="@{main$composer.inventory.titleTranslitDcr, is-live=t
<row valign="top">
<label value="Title with diacritics" zclass="field_label"/>
<textbox value="@{main$composer.inventory.titleTranslitDcr, is-live=true}" hflex="1"/>
</row>
我确信在这段代码中我得到了字符串的有效值。但在使用F5完全重新加载之前,任何操作都不起作用
至于样本-我有大约50+个字段,我应该在5个字段中更新。我通过打开两个页面来测试这一点——在一个页面上,我将数据保存到db中,在另一个更改选项卡上,并查找更改,但什么也没有发生,即使我从db获得了正确的值(在另一个浏览器实例上更改了该值)
编辑11.04.2013:
找到了和这个很接近的东西。从教程中的onclick事件重新加载.zul页面,但我认为应该将其与@Command结合使用。有没有一种方法可以测试它是否工作?您可以使用ZK MVVM执行此操作,如下所示: test.zul
<zk>
<div apply="org.zkoss.bind.BindComposer"
viewModel="@id('vm') @init('test.TestVM')">
<tabbox onSelect="@command('updateData')">
<tabs>
<tab label="tab 1" />
<tab label="tab 2" />
</tabs>
<tabpanels>
<tabpanel>
<label value="@load(vm.dataOne)" />
</tabpanel>
<tabpanel>
<label value="@load(vm.dataTwo)" />
</tabpanel>
</tabpanels>
</tabbox>
</div>
</zk>
您可以使用ZK MVVM执行此操作,如下所示: test.zul
<zk>
<div apply="org.zkoss.bind.BindComposer"
viewModel="@id('vm') @init('test.TestVM')">
<tabbox onSelect="@command('updateData')">
<tabs>
<tab label="tab 1" />
<tab label="tab 2" />
</tabs>
<tabpanels>
<tabpanel>
<label value="@load(vm.dataOne)" />
</tabpanel>
<tabpanel>
<label value="@load(vm.dataTwo)" />
</tabpanel>
</tabpanels>
</tabbox>
</div>
</zk>
package test;
import org.zkoss.bind.annotation.Command;
import org.zkoss.bind.annotation.NotifyChange;
public class TestVM {
public String getDataOne () {
return System.currentTimeMillis() % 19 + "";
}
public String getDataTwo () {
return System.currentTimeMillis() % 91 + "";
}
@Command
@NotifyChange({"dataOne", "dataTwo"})
public void updateData () {
}
}