ZK を使用して Web アプリケーションで作業しています。ユーザーが指定した数の行window
をレンダリングする必要がある場所に苦労しています。grid
次のようになります。
<grid>
<columns>
<column width="150px"/>
<column width="350px"/>
</columns>
<rows>
<row>
<cell>
<label value="Rows to add"/>
</cell>
<cell>
<textbox id="txt_rowamount"/>
</cell>
</row>
</rows>
</grid>
<grid id="grid">
<columns>
<column width="100px" label="Field 1" align="center"/>
<column width="100px" label="Field 2" align="center"/>
<column width="100px" label="Field 3" align="center"/>
</columns>
<rows id="rows" forEach="${rowModelList}">
<row>
<cell>
<textbox value="${each.field1}" />
</cell>
<cell>
<textbox value="${each.field2}" />
</cell>
<cell>
<textbox value="${each.field3}" />
</cell>
</row>
</rows>
</grid>
<button id="btn_generate" label="Generate Rows"/>
したがって、 4 つのコンポーネントとそれぞれに 3 つのコンポーネントがtxt_rowamount
あるグリッドに 4と入力すると、 . テキストボックスは空である必要があり、すべてのアイテムのユーザー入力をバインドする必要があるすべてのテキストボックスを完了すると、明確になりますか?row
textbox
row
fieldN
rowModel
私は作曲家でこのようなことを試みています:
private ListModel<RowModel> rowModelList;
@Autowired
private Grid grid;
@Override
public void doAfterCompose(final Window component) throws Exception {
super.doAfterCompose(component);
rowModelList = new ListModelList<>();
grid.setVisible(false);
}
public void onClick$btn_generate() {
// TODO Add four empty elements to rowModelList
grid.setVisible(true);
}
のRowModel
ようであること
public class RowModel {
private String field1;
private String field2;
private String field3;
// ommited constructors, getters and setters
}
アプローチは現在のMVCではなくMVVMであるべきだと思いますが、これを行う方法がわかりません。その上、同じアプリケーションでアプローチを混在させることができるかどうか、それを行うことの長所と短所はわかりません。
ZK グリッドのデモを見たことがありますが、それらはすべて既にデータが入力されたオブジェクトを使用してテーブルをレンダリングしているため、役に立ちません。
誰かがこの問題で私に手を差し伸べることができれば、それは大歓迎です. コードまたはこの問題の要件についてさらに情報が必要な場合は、コメントアウトしてください。
ご回答ありがとうございます。