列表框

我对使用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

下一篇: Compile Delphi 7 code in Delphi xe2