2017-06-01 4 views
1

私はVaadin 7.7を使用しており、テーブルをグリッドに切り替えます。私が望むように私は自分の細胞をパーソナライズすることができません。ここでは、arraylistの列にコンボボックスを追加し、選択した値を取得したいと考えています。vaadin 7.75グリッドにコンボボックスを追加するには?

indexedContainer.addItem(listValue); 
    indexedContainer.getContainerProperty(listValue, 
      key.get(0)).setValue(
      String.valueOf(listValue.get(0))); 

は最後に、私は編集可能で、私の物を入れて、私はこれを使用します。私は私の項目を追加し、私のIndexedContainerここ

IndexedContainer indexedContainer = new IndexedContainer(); 
    indexedContainer.addContainerProperty("Type de véhicule",String.class,""); 

を作成ここで

は、ここに私のコードの一部ですバックアップ中にアクションを実行する機能:

grid.getEditorFieldGroup().addCommitHandler(new FieldGroup.CommitHandler() { 
    @Override 
    public void preCommit(FieldGroup.CommitEvent commitEvent) throws FieldGroup.CommitException { 

    } 
    @Override 
    public void postCommit(FieldGroup.CommitEvent commitEvent) throws FieldGroup.CommitException { 

あなたが任意のアイデアや提案がある場合は躊躇しないでください:)

をおやすみなさい

答えて

-1

このお試しください:

private Field<?> getComboState() { 
    ComboBox comboBox = new ComboBox(); 
    comboBox.addItem("approve"); 
    comboBox.addItem("no-approve"); 
    comboBox.setImmediate(true); 
    comboBox.setNullSelectionAllowed(false); 
    return comboBox; 
} 
0

あなたが何かを使用することができますgetComboStateがある

grid.getColumn("state").setEditorField(getComboState()); 

をこのように:

List<String> values = obtainValues(); 
IndexedContainer container = new IndexedContainer(); 
//Add other properties... 
container.addContainerProperty("comboBox", ComboBox.class, null); 
//Do more stuff 
ComboBox cb = new ComboBox(); 
cb.addItems(values); 
item.getItemProperty("comboBox").setValue(cb); 

グリッド宣言では、グリッドでコンポーネントをレンダリングできるようにaddonを使用できます。コンボボックスの値を取得する

Grid grid = new Grid(); 
//Even more stuff 
grid.setContainerDataSource(container); 
grid.getColumn("comboBox").setRenderer(new ComponentRenderer()); 

Item item = container.getItem(itemId); 
ComboBox cb = item.getItemProperty("comboBox").getValue(); 
String value = (String) cb.getValue(); 
関連する問題