2012-05-03 87 views
0

爲什麼Vaadin ComboBox在執行setReadOnly(true)時不可見?Vaadin ComboBox在只讀時不可見

截圖

正常 normal ComboBox - visible

無形ComboBox with setReadOnly(true) - invisible

的源代碼

import java.util.List; 
import com.vaadin.ui.ComboBox; 

public class PropertyComboBox extends ComboBox 
{ 
    public PropertyComboBox(List<String> properties) 
    { 
     super(); 
     for(String property: properties) {this.addItem(property);} 
     this.setImmediate(true); 
     this.setMultiSelect(false); 

     this.setNewItemsAllowed(false); 
     this.setInputPrompt("Property"); 
     this.setReadOnly(true); 
    } 
} 

回答

1

如果您嘗試創建組合框,其中用戶無法寫入任何內容,請查看NativeSelect組件。

從API文檔:

這是多選,新項目,惰性加載,和其他先進的功能簡單的下拉列表中選擇無,例如,支持。有時候,「本地」選擇沒有所有的ComboBox的鈴聲和口哨是一個更好的選擇。

如果您不需要這些功能,那麼您應該定義考慮使用NativeSelect。

1

所有組件獲得 「隱形」 當設置t下襬只讀。我找不到任何理由,也想知道。

我的建議(有點hacky):禁用組件並在CSS中更改其禁用的出現。

1

Nexus是正確的,當設置爲readOnly時,組件變爲不可見。事實上,設置爲只讀添加「v-readonly」CSS類名和CSS做其餘的。

問候。