将GXT 2.2.5与GWT 2.3.0一起使用......
这个让我难过。我有一个RpcProxy检索要在ComboBox上显示的项目列表供用户选择。我还在ComboBox旁边有一个按钮,允许用户创建一个新项目。该按钮打开一个窗口,用户在该窗口中输入信息,然后将新项目添加到数据库中。
我想要发生的是当用户在操作结束时关闭窗口时,ComboBox会自动选择新项目。我通过ID识别新项目,然后使用ComboBox将其传回容器。
首先我尝试简单地设置ComboBox值:
Item item = comboBox.getStore().findModel("id", id);
if (item != null)
{
comboBox.setValue(item);
}
那没用;据我所知,ComboBox没有重新加载数据,所以新项目不存在可供选择。
所以,接下来我尝试重新加载商店,然后选择:
comboBox.getStore().getLoader().load();
Item item = comboBox.getStore().findModel("id", id);
if (item != null)
{
comboBox.setValue(item);
}
这也不起作用;该值仍未被选中。
最后,我尝试创建一个临时的LoadListener,以确保在进行选择之前重新加载商店:
LoadListener listener = new LoadListener()
{
@Override
public void loaderLoad(LoadEvent le)
{
super.loaderLoad(le);
Item item = comboBox.getStore().findModel("id", id);
if (item != null)
{
comboBox.setValue(item);
}
}
};
comboBox.getStore().getLoader().addLoadListener(listener);
comboBox.getStore().getLoader().load();
comboBox.getStore().getLoader().removeLoadListener(listener);
仍然没有快乐。一些检查显示听众甚至没有被调用。
我做错了什么,如何解决?
答案 0 :(得分:0)
您是否曾尝试将combobox.setUseQueryCache(false);
设置为每次都重新加载组合框?
答案 1 :(得分:0)
在storeDataChanged方法中使用商店监听器 https://www.sencha.com/forum/showthread.php?73979-How-to-manually-select-an-item-(combobox)
store.addStoreListener(new StoreListener<BeanModel>(){
@Override
public void storeDataChanged(StoreEvent<BeanModel> se) {
super.storeDataChanged(se);
BeanModel item = se.getStore().findModel("id", id);
if(item != null){
//grid.getSelectionModel().select(item, false);
comboBox.setValue(item);
}
}
});