我有一個數據表與幾行,我有一個列,我有一個窗體與一個簡單的按鈕,刪除該行中的對象。如何在Primefaces數據表中添加對象的刪除按鈕?
所以第一工作版本:
<h:dataTable value="#{actorTableBackingBean.allActors}"
var="actor" styleClass="table table-bordered">
<h:column headerText="Actor Name" sortBy="#{actor.firstName}">
<h:outputText value="#{actor.firstName}"/>
</h:column>
<h:column headerText="Actor Detail">
<h:form>
<h:commandButton value="Delete Actor"
styleClass="btn btn-primary"
action="#{actorTableBackingBean.deleteActor(actor.actorId)}"/>
</h:form>
</h:column>
</h:dataTable>
而這正是deleteActor方法是這樣的:
public String deleteActor(String id){
removeActorWithId(id);
return "/allActors.xhtml";
}
private void removeActorWithId(String id){
int idk = Integer.parseInt(id);
for(Actor a:allActors){
if(a.getActorId() == idk){
allActors.remove(a);
return;
}
}
}
所以這正是按預期工作,因爲它是。
但是,當我使用here中所示的Primefaces的分頁數據表時,刪除按鈕僅適用於第二種情況下的第一行,並且僅適用於第一次。 當我點擊按鈕「刪除」其他行時,根本沒有任何反應。 可能是什麼原因?
對於第二種情況只是把<形式>各地p標籤:dataTable中所看到的鏈接,並取代一切都像H:DataTable添加到號碼:DataTable,並將號碼:列等等
你的支持Bean有什麼範圍? – Sonic
@Sonic你好,它有RequestScoped。 –
將您的表單移動到dataTable之外。 – 8bitjunkie