gpt4 book ai didi

java - ZK NotifyChange 列表中的单个记录而不是整个列表?

转载 作者:行者123 更新时间:2023-12-01 13:00:36 26 4
gpt4 key购买 nike

我有下面的代码,我只想通知列表中的单个项目而不是整个列表,就像我们通知整个列表一样,它会再次重新加载数据,这会消耗大量内存并且看起来很难看。任何人都知道提高性能的更好方法应用程序?

@Command
public void valueChangedListnerForCombo(
@BindingParam("Code") Combobox combobox,
@BindingParam("BeanData") Record record,
@BindingParam("ColumnName") String columnName) {
super.valueChangedListnerForCombo(combobox, record, columnName);
if (!adminNewListModelList.contains(record) && !changedListModel.contains(record)){
changedListModel.add(record);
BindUtils.postNotifyChange(null, null, this , "adminListboxViewModel");
}
}

最佳答案

编辑:您可以像这样通知更改单个对象:

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

您的原因的结果:什么也没有。
为什么:因为你做了add操作。如果它是记录更新,那么这应该有效。

您将对象添加到 listModel,以便 listModel 发生更改并且必须得到通知。如果您只调用 listmodel 而不是 viewmodel 中的 getter,通常会获得性能提升。 (尝试在对象的 getter 上设置一个记录器,看看都调用了什么)

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

编辑2:

您的方法中有组合框。
尝试执行以下操作而不是 postNotifyChanged

combobox.invalidate();

这会将组合框设置为正确的基础模型,即您刚刚更改的内容。

关于java - ZK NotifyChange 列表中的单个记录而不是整个列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23542358/

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