ZK在AnnotateDataBinder loadAll()之后设置所选项目

时间:2011-10-12 09:44:30

标签: listbox zk

我是ZK的新手。我有一个列表框,列表作为模型。当我收到更新事件时,我更新模型中的信息,然后使用

更新UI
AnnotateDataBinder binder = (AnnotateDataBinder) vesselsList.getPage().getAttribute("binder");
if (binder != null) {
      binder.loadAll();   
}

问题是更新后,在以下代码中

List updatedObjects = object.getItems();
for (Object obj : updatedObjects) {
Listitem data =  (Listitem) obj;              
Object ob =  data.getValue();

data.getValue()始终为null。 我已经在互联网上搜索了很多天,我发现在加载所有内容之后,活页夹会启动onInitRenderLater事件,但我无法使其工作。

我的意图是如果我在更新之前选择了一个项目,我希望它保持选中状态并且绑定了binder.loadAll()。

2 个答案:

答案 0 :(得分:0)

您是否使用带注释的数据绑定对项目进行了setValue?

<listitem value="@{bean.data}" > ....  </listitem>

答案 1 :(得分:0)

在zul我做了

<listbox model="@{objects_model}" id="objectsList"

在Java中我调用方法

public void onAfterRender$objectsList(Event event) {
    // select item here after the listbox has been rendered
}

它成功了