ฉันมีเพจที่มีคอลัมน์ p:datatable และไดนามิก ฉันกำลังพยายามเพิ่มปุ่มคำสั่งที่ส่วนหัวด้วย f:attribute เป็นค่าสำหรับการคลิกปุ่มคำสั่ง ปัญหาคือฉันไม่สามารถไปที่เซิร์ฟเวอร์ได้เลยเมื่อกดปุ่มส่วนหัว นี่คือข้อมูลโค้ด
<p:dataTable >
<p:columns value="#{controller.columnsTitles}" var="column" columnIndexVar="colIndex">
<f:facet name="header">
<p:panel >
<table>
<tr>
<th>
<p:panel>
#{column.label}
</p:panel>
</th>
</tr>
<tr>
<th>
<h:panelGroup >
<p:commandButton value="Add" actionListener="#{controller.doStaff}">
<f:setPropertyActionListener value="#{column.value}" target=#{controller.selectedToEdit}" />
</p:commandButton>
</h:panelGroup>
</th>
</tr>
</table>
</p:panel>
</f:facet>
<p:column>
......
</p:column>
</p:columns>
</p:dataTable>
[แก้ไข] ฉันพบวิธีแก้ไขปัญหานี้แล้ว ไปที่ commandbutton ฉันได้เพิ่มเหตุการณ์ onClick ที่ส่งพารามิเตอร์ SelectedToEdit ไปยังฟังก์ชัน javascript ซึ่งในทางกลับกันเธอก็เรียก p:remoteCommand ที่ส่งพารามิเตอร์ไปยังเซิร์ฟเวอร์ ฉันยังเปลี่ยน actionListener ของ commandButton เป็น action และตอนนี้ก็ใช้งานได้แล้ว
ตอนนี้โค้ดมีลักษณะดังนี้:
<script>
function jsFunc(param)
{
command([{name:'selectedToEdit',value:selectedToEdit}]);
}
</script>
.....
<p:remoteCommand name="command" actionListener="#{controller.selectedToEdit}" />
<p:commandButton value="Add" action="#{controller.doStaff}" onclick="jsFunc('#{column.value}')" />
ajax="true"
เป็นค่าเริ่มต้น หากคุณต้องการให้ปุ่มทำงานปกติ คุณต้องตั้งค่าหากเป็นเท็จอย่างชัดเจน - person Przemek   schedule 03.07.2013