我正在使用 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
}
我认为该方法应该是MVVM而不是当前的MVC,但我不知道该怎么做。此外,我不知道您是否可以在同一个应用程序中混合使用这些方法,这样做的优点和缺点是什么。
我看过ZK 网格演示,但它们都使用已经填充的对象来呈现表格,所以它对我没有用。
如果有人可以帮我解决这个问题,将不胜感激。如果您需要有关此问题的代码或要求的更多信息,请将其注释掉。
提前感谢您的回答。