0
您好,我正在嘗試在p:datatable中實現一些primefaces命令按鈕。我的需求幾乎與本文相同: f:setPropertyActionListener not invoked使用<p:datatable>中的<p:commandbutton>顯示<p:dialog>
基本上我需要在a中有一列按鈕,點擊一個按鈕會將當前行的對象傳遞給bean,並彈出一個對話框,顯示所選對象的一些信息。
以下是相關代碼:
<f:view>
<body>
<h:form id="theForm">
<p:dataTable id="testFailures" value="#{testDetails.report.failures}" var="failure"
styleClass="baseTable">
<p:column id="requestColumn">
<f:facet name="header">
<h:outputText value="Request" id="requestHeaderText" />
</f:facet>
<p:commandButton value="Detail" update="requestDialog"
oncomplete="PF('dlg1').show();" type="button">
<f:setPropertyActionListener
target="#{testDetails.selectedFailure}" value="#{failure}" />
</p:commandButton>
<h:message for="requestDialog" />
<p:dialog id="requestDialog" header="Request Dialog"
widgetVar="dlg1" dynamic="true">
<h:outputText value="#{selectedFailure.request}" />
</p:dialog>
</p:column>
</p:dataTable>
</h:form>
<h:message for="theForm" />
<h:message for="responseDialog" />
<p:dialog id="responseDialog" header="Request Dialog"
widgetVar="dlg2" dynamic="true">
<h:form>
<h:outputText value="#{selectedFailure.request}" />
</h:form>
</p:dialog>
</body>
</f:view>
我試圖把在不同位置的對話框(參見我的「DLG1」和「DLG2」)。但都不起作用。沒有對話框顯示。也沒有顯示任何東西。我在瀏覽器的控制檯窗口中看不到任何錯誤消息。 (我認爲有一個驚歎號警告)。
我試過調試模式,並且不會調用屬性「selectedFailure」的設置方法。
謝謝!一旦我回到我的工作站,我會明天嘗試,如果它能正常工作,我會接受這個答案。 – bookmonkie
刪除type =「button」後,我收到此消息。從「theForm:testFailures:0:j_id2139004342_7f7e9ef6」引用的表達式「responseDialog」找不到組件。 – bookmonkie
我也注意到p:對話框沒有添加到呈現的html頁面。 – bookmonkie