2011-06-07 37 views
9

如何让列表框中的第一项禁用?以下是我的代码:GWT列表框 - 如何禁用列表框项目?

ListBox list = new ListBox(); 
list.addItem("Select an item"); 
list.addItem("a"); 
list.addItem("b"); 
list.addItem("c"); 

如何禁用列表中的第一项? 非常感谢

回答

8

您可以选择的第一个子元素,并设置残疾人属性附加伤害:

list.getElement().getFirstChildElement().setAttribute("disabled", "disabled"); 
+3

而不是做DOM操作的,执行:。 list.getElement()铸造()getOptions()的getItem(0).setDisabled(真正); – Dominator008 2013-11-09 05:41:19

14

对于任何人谁发现这个页面,并正在寻找禁用GWT列表框选项,这是不是在第一个选项ListBox,这工作对我来说:

list.getElement().getElementsByTagName("option").getItem(itemNumber).setAttribute("disabled", "disabled"); 

其中itemNumber是您想禁用的选项。

2

在六行:

private void disableOption(ListBox listBox, int optionNumber, boolean disable){ 
     if(optionNumber<=listBox.getElement().getChildCount()){ 
      Element element = listBox.getElement().getFirstChildElement(); 
      while (--optionNumber > 0){ 
       element = element.getNextSiblingElement(); 
      } 
      element.setAttribute("disabled", disable ? "true" : "false"); 
     } 
} 
+0

不应该在那里(optionNumber--> 0)而不是(--optionNumber> 0)? – Helbreder 2015-03-19 10:12:19

4
list.getElement().<SelectElement>cast().getOptions().getItem(0).setDisabled(true‌​);