Java ZK通知更改列表中的单个记录,而不是整个列表?

Java ZK通知更改列表中的单个记录,而不是整个列表?,java,zk,Java,Zk,我有下面的代码,我只想通知列表中的单个项目,而不是整个列表,就像我们要通知整个列表一样,它将再次重新加载数据,这将消耗大量内存,看起来很难看。有谁知道提高应用程序性能的更好方法吗 @Command public void valueChangedListnerForCombo( @BindingParam("Code") Combobox combobox, @BindingParam("BeanData") Record record,

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

@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, "*");
你的事业的结果:什么都没有。
原因:因为您执行了
添加操作。如果是
记录的
更新
,则应能正常工作

您将对象添加到listModel中,这样listModel将被更改并得到通知。 如果只调用
listmodel
,而不是从
viewmodel
调用getter,通常会获得性能增益。(试着在对象的getter上设置一个记录器,看看调用了什么)

编辑2:

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

combobox.invalidate();

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

我知道brother请检查我的问题,我必须通知单记录列表,而不是整个类或整个列表离开此部分或删除此部分changedListModel。添加(记录);随着adminNewListModelList中所做的更改以及ZUL中使用的更改,我必须通知该列表的单个记录,我尝试了BindUtils.postNotifyChange(null,null,record,“”);但是如果我在做BindUtils.postNotifyChange(null,null,adminNewListModelList,“”),它将不起作用;它正在工作,但我必须通知单记录,而不是整个列表。你知道我们可以这样做吗?就像我说的,当你改变记录的时候,结果什么都不是。通过对listmodel进行添加或删除操作,您必须对listmodel执行notifyChanged操作,通过更新列表中的记录,您可以通知对象本身。我不明白?“通过更新列表中的记录,您可以通知对象本身。”您想说我必须通知整个列表吗?实际上,对于添加或删除操作,您始终需要通知您的listmodel。有关记录的更新,请参见此
combobox.invalidate();