我有一個數據表與自定義刪除按鈕,當我嘗試將選定行的id發送到後臺bean,但我總是得到相同的值,這是我的代碼:primefaces數據表選擇行總是相同的值
<p:dataTable id="result" var="service" value="#{bean.services}" editable="true">
<!-- ajax -->
<p:ajax event="rowEdit" listener="#{bean.onEdit}" update=":form:msg" />
<p:ajax event="rowEditCancel" listener="#{bean.onCancel}" update=":form:msg" />
.....
<p:column headerText="delete" style="width:100px;">
<p:confirmDialog id="confirmation" message="are u sure?" header="delete item" widgetVar="confirmation" showEffect="fade" hideEffect="explode">
<p:commandButton value="Yes" onclick="PF('confirmation').hide()" actionListener="#{bean.onDeleteRow}">
<f:setPropertyActionListener target="#{bean.cve}" value="#{service.id.cve}" />
</p:commandButton>
<p:commandButton value="No" onclick="PF('confirmation').hide()" type="button" />
</p:confirmDialog>
<p:commandLink id="deleteLink" onclick="PF('confirmation').show()" styleClass="ui-icon ui-icon-trash"/>
</p:column>
</p:dataTable>
這裏是烘焙豆代碼:
@ManagedBean
@ViewScoped
@SuppressWarnings("serial")
public class Bean implements Serializable{
private String cve;
...
public void setcve(String cve) {
this.cve = cve;
}
....
public void onDeleteRow(){
try {
System.out.println("delete-->" + this.cve);
} catch (Exception e) {
e.printStackTrace();
}
}
}
在標籤,你可以看到我送的參數值,但我總是留下的數據表中的最後一個值...
我在做什麼錯了?
非常感謝您的支持
發生什麼事,是一個複合鍵(和IM與JPA2工作後端),所以我得到的價值是這樣的,問題是,每次你選擇不同的行時,service.id.cve的值總是相同的,我不知道爲什麼:(非常感謝你 – Mariah 2014-10-27 18:59:06
@Mariah將setPropertyActionListener移動到您的
– 2014-10-27 19:00:50非常感謝! !有效!! ü拯救我的一天! :) U're令人驚訝 – Mariah 2014-10-27 19:24:15