raf*_*lry 5 java gwt default selection
我有一个GWT的ListBox包含项目:
listBox = new ListBox();
listBox.addItem("A");
listBox.addItem("B");
listBox.addItem("C");
Run Code Online (Sandbox Code Playgroud)
我希望它最初未被选中 - 这样就不会挑选任何项目.最初缺少选择应该用空文本表示,并且在选择任何项目之后用户不能选择"无选择项目".
不幸的是以下行:
listBox.setSelectedIndex(-1);
Run Code Online (Sandbox Code Playgroud)
抛出IndexOutOfBoundsException
.
是否可以使用GWT ListBox获取此类行为?
是的,这是正常的情况,因为当你打电话时,setSelectedIndex()
它会检查索引是否在范围内.ListBox类中有方法.
private void checkIndex(int index) {
if (index < 0 || index >= getItemCount()) {
throw new IndexOutOfBoundsException();
}
}
Run Code Online (Sandbox Code Playgroud)
所以默认情况下会选择0索引.如果要为第一个项添加空文本项,请使用空字符串为零索引添加其他项:
listBox = new ListBox();
listBox.addItem(" ");
listBox.addItem("A");
listBox.addItem("B");
listBox.addItem("C");
listBox.addChangeHandler(new ChangeHandler() {
public void onChange(ChangeEvent changeEvent) {
SelectElement selectElement = listBox.getElement().cast();
selectElement.getOptions().getItem(0).setDisabled(true);
}
});
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
6884 次 |
最近记录: |