2015-05-06 17 views
0

我有一個數據表仿型排動態地在H: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

使用動態可擴展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)); 
} 
public VFM(VFM vfm) { 
    orderTypeId = vfm.orderTypeId; 
    fulfillTypeId = vfm.fulfillTypeId; 
    orderSeq = vfm.orderSeq; 
    lastUpdated = vfm.lastUpdated; 
    lastUpdatedBy = vfm.lastUpdatedBy; 
    lastItem = vfm.lastItem; 
    action = vfm.action; 
}