列表框
我对使用Spring + GWT预先选择( setSelectedIndex(index)
)列表框中的项目,Im有疑问。
我有一个包含面板的对话框,这个面板有一个FlexPanel,我在其中放置了一对ListBox,这里面充满了我数据库中的数据。
但是这个面板是为了更新我的数据库中的一个实体,因此我希望它能够预先选择这个项目的当前属性,允许用户随意更改。
我在填写小部件的更新方法。
我尝试在更新方法中设置selectedItem,但它给了我一个空错误。
我搜索了几个地方,似乎只在显示的确切时刻填充了列表框。 因此预选是不可能的。
我想到了一些事件,当页面显示时会被触发。
onLoad()不起作用..
任何人都可以在这里帮助我?
我真的认为您可以在选择附加和显示之前设置选择,但是您必须添加数据才能选择索引。 如果这是一个单一的选择框,你可以写这样的东西:
void updateListContent(MyDataObject selected, List<MyDataObject> list){
for (MyDataObject anObject : list) {
theListBox.addItem(anObject.getTextToDisplay(), anObject.getKeyValueForList());
}
theListBox.setSelectedIndex(list.indexOf(selected));
}
如果这是一个多选框,可能会这样:
void updateListContent(List<MyDataObject> allSelected, List<MyDataObject> list){
for (MyDataObject anObject : list) {
theMultipleListBox.addItem(anObject.getTextToDisplay(), anObject.getKeyValueForList());
}
for (MyDataObject selected : allSelected) {
theMultipleListBox.setItemSelected(list.indexOf(selected), true);
}
}
(注意我没有真正编译过,所以可能会出现拼写错误,并且假定选定的元素真的出现在可能的值列表中,所以如果你不能确定这一点,你需要添加一些边界检查。)
我一直很乐意在附件之前设置值和选择索引,因为据我所知它应该可以工作。 但是,在IE上将选定索引设置为-1时有一个错误,请参阅http://code.google.com/p/google-web-toolkit/issues/detail?id=2689。
预选也应该与setValue()函数一起工作。 因此,不需要复杂的代码。
链接地址: http://www.djcxy.com/p/59889.html上一篇: ListBox