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

发布于 2024-12-09 13:11:44 字数 588 浏览 0 评论 0原文

我是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()。

I'm new to ZK. I have a Listbox with a List as model. When I receive an update event I update the information in the model and then I update the UI using

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

The problem is that after the update, in the following code

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

The data.getValue() is always null.
I have search the internet for many days and I found that the binder launches an onInitRenderLater event after load everything but I can't manage to make it work.

My intent is if I have an item selected before the update,I want it to remain selected and the binder.loadAll().

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

夏见 2024-12-16 13:11:44

您是否使用带注释的数据绑定将Value设置为您的项目?

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

Did you setValue to your items with annotated databinding ?

<listitem value="@{bean.data}" > ....  </listitem>
-柠檬树下少年和吉他 2024-12-16 13:11:44

在我制作的 zul 中

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

,在 Java 中我调用了

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

它的方法

In zul I made

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

and in Java I call the method

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

it did the trick

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文