2011-04-01 81 views
2

我正在嘗試使用GWT創建列表框。我正在使用UiBinder創建該字段。將默認文本設置爲GWT列表框

我想在列表框中設置默認文本,當用戶單擊該框時,它應該顯示列表項。再一次,如果用戶沒有選擇任何選項,它應該再次向我顯示默認文本。

任何方式來使用Uibinder或一些ListBox方法來做到這一點?

回答

4

如果我理解正確,您希望顯示一個值,但是當用戶單擊列表時,它會消失並顯示列表項? 據我所知,本地沒有選擇。

你可以做的是添加第一個項目來保存你的默認值。 您可以通過在代碼中使用的addItem或使用語法做到這一點:

<g:Listbox> 
    <g:item value="-1">Default text</g:item> 
</g:Listbox> 

作品與GWT 2.1+

值仍然可以選擇。 您可以選擇忽略,或添加屬性「已禁用」,值爲「禁用」的選項元素:

listbox.getElement().getFirstChildElement().setAttribute("disabled" ,"disabled") 

希望它有助於一點:)

0

您還可以使用渲染器來控制如果選擇「空」,會顯示什麼內容。

(由啓發:How do I add items to GWT ListBox in Uibinder .ui.xml template ?

private class SimpleRenderer implements Renderer<T>{ 
    private String emptyValue = "Select a value"; 

    @Override 
    public String render(T val) { 
     if(val == null) { 
      return emptyValue; 
     } 
     return val.toString(); 
    } 

    @Override 
    public void render(T val, Appendable appendable) throws IOException { 
     appendable.append(render(val)); 
    } 

    public void setEmptyValue(String emptyValue) { 
     this.emptyValue = emptyValue; 
    } 


}