在h:dataTable中动态复制行

时间:2015-05-06 19:19:28

标签: jsf jsf-2 datatable

我有一个数据表

<h:dataTable value="#{vendor.vh.currentVendorVO.vfms}" var="row">

VendorVO

private VFM[] vfms;
public VFM[] getVfms() {
    return vfms;
}
public void setVfms(VFM[] vfms) {
    this.vfms = vfms;
}

VFM

private String orderTypeId;
private String fulfillTypeId;
private int orderSeq;
private String lastUpdated;
private String lastUpdatedBy;
private boolean lastItem;
private String action = "none";

我想在点击按钮时复制<h:dataTable>行。

我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

使用动态可扩展的Express而不是固定大小的数组ArrayList

[]

然后,只需让按钮使用新的private List<VFM> vfms; // +getter (setter is unnecessary) 实例调用add()方法。

VFM
<h:commandButton value="Add" action="#{bean.addVfm}" />

如果您打算在复制新public void addVfm() { vfms.add(new VFM()); } 实例的每一行上都有此按钮,那么只需传递它并添加一个复制构造函数。

VFM
<h:commandButton value="Copy" action="#{bean.copyVfm(row)}" />
public void copyVfm(VFM vfm) {
    vfms.add(new VFM(vfm));
}