2017-07-04 10 views
0

私はZKで全く新しいです。私は彼らのラベルを動的にNコンボボックスを作成し、それらを移入する必要があります。私はすでにそのIDでコンボボックスに値を設定しますが、多くのコンボボックスが存在する可能性があるので、私はそれらのIDを知るべきではないので、私の問題は解決しません。ZKでダイナミックにコンボボックスのグループ

Nコンボボックスとそのラベルを追加し、それらを動的に取り込む必要があります。コンボボックスのグループを作成して動的に設定する方法はありますか?何か案は?

コードは、固定IDを既に知っているコンボを入力するために使用します。

//In this example I assume I have a label and a combobox. But could have 0 to N of them. 

private Label lblComboMetadatos; 
private Combobox cmbMetadatos; 

//THEN 

if (cmbMetadatos.getItemCount() == 0) { 
    lblComboMetadatos.setValue(trdMetaTipoDocumental.getNombreMetadato()); //Here I set the name of label but I should really can not know how many of them could be. There may exist 0..N 
    for (TrdMetadato trdMetaDato: trdMetaTipoDocumental.getTrdMetadatos()) { 

    String enumValores = trdMetaDato.getValoresEnumerado(); //Here I set the values of a combobox but I can not know how many of them could be. There may exist 0..N 
    cmbMetadatos.appendItem(enumValores]); 
} 

} 
<zk> 
    <window id="idWindow" title="nameWindow" apply="controller.java" border="normal" closable="true" sizable="true" maximizable="true" maximized="true" height="85%" width="150%" style="overflow:auto;"> 
    <!-- CONTINUES --> 
    <groupbox> 
     <hlayout> 
     <label id="lblComboMetadatos" /> 
     <combobox id="cmbMetadatos"></combobox> 
     </hlayout> 
    </groupbox> 
    <!-- CONTINUES --> 
    </window> 
</zk> 

答えて

1

この質問はあなたのlast questionと非常によく似ています。親コンテナ(この場合はhlayout)をコントローラに配線し、そこにコンポーネントを作成する必要があります。

@Wire 
private Component container; // your hlayout 

@Override // This method should be specified by a composer super class 
public void doAfterCompose(Component comp) throws Exception 
    for (<count an index or loop over data>) { 
     hlayout.appendChild(new Label("Hello World"); 
     Combobox cb = new Combobox(); 
     // append Comboitems 
     cb.addEventListener(Events.ON_SELECT, ...); 
     hlayout.appendChild(cb); 
    } 
} 

あなたはMVVMを使用した場合は、ZULでコンポーネントを作成するchildren bindingを使用することができます。

関連する問題