2013-10-10 178 views
3

組合框的實例是全局創建的,它充滿了,可以說是公司列表,而值是一個ID。加載文件後,我想檢查組合框中是否有該值,然後以編程方式選擇它。Vaadin在組合框填充後設置組合框的值

class cComboBoxFun extends UI implements ClickListener 
{ 
    ComboBox cb_company; 
    List<cCustomer> ListCust; 

    //default constructor and server conf not really relevant 

    @Override 
protected void init(VaadinRequest request) 
{ 
     //Lets assume the list has been filled already 
     cb_company = new ComboBox("Company"); 

     for(cCustomer cust : ListCust) 
     { 
     cb_company.addItem(cust.mgetId); 
     cb_company.setItemcaption(cust.mgetId, cust.mgetName); 
     } 


    } 

    class cCustomer() 
    { 
     private String name; 
     private String Id; 

     public String GetName() 
     { 
     return this.name 
     } 

     // Same for id 

    } 

我試着檢查值是否存在並設置它,但沒有任何反應。我擡起頭,卻找不到答案

if(cb_company.getItemCaption(value) != null) 
    cb_company.set(value); 

回答

8

假設你ComboBox使用單一選擇模式,可以選擇編程給定項目與

cb_company.select(value) 

其中valuecCustomer.Id。因此,代碼可能看起來如下:

cb_company = new ComboBox("Company"); 

for(cCustomer cust : ListCust) 
{ 
    cb_company.addItem(cust.mgetId); 
    cb_company.setItemcaption(cust.mgetId, cuts.mgetName); 
} 

//select the first item from the container 
cb_company.select(ListCust.get(0)); 
+0

謝謝,我試圖與名稱設置... SMH – Br0thazS0ul

+0

不是爲我工作,甚至當我固定的ID爲10,例如 – Bourkadi