2011-06-07 55 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‌​);