所以,我有一個DataTable,看起來像這樣:如何通過AJAX傳遞一個迭代參數到後臺bean的方法
<h:form>
<h:dataTable value="#{backingBean.employeeLineItems}" var="emp">
<h:column>
<f:facet name="header">First</f:facet>
#{emp.lastname}
</h:column>
<h:column>
<f:facet name="header">Last</f:facet>
#{emp.firstname}
</h:column>
<h:column>
<f:facet name="header">Actions</f:facet>
<h:commandButton value="View Details">
<f:ajax execute="#{setCurrentEmployeeId(emp.id)}" render="employeeDetails"/>
</h:commandButton>
</h:column>
</h:dataTable>
<h:outputText value="#{backingBean.employeeDetails}" id="employeeDetails"/>
</h:form>
對於數據表的每一行,有一個按鈕,我想,當點擊時,ajax將employeeLineItem的id值轉換爲在backing bean中設置該id的方法,然後呈現標識爲「employeeDetails」的outputText標記(getEmployeeDetails方法將使用employeeLineItem標識從數據庫,當然)
我的解決方案似乎並沒有工作,有誰知道我在做什麼錯了?
謝謝,我修復了我的代碼以使用您的方法。但是,使用 會導致錯誤「包含未知ID'employeeDetails' - 無法在組件j_idt21的上下文中找到它」。看起來outputText標記無法解析,即使我是通過id引用它的,它的形式相同? –
bitsmcgee77
''也是'NamingContainer'組件。你需要指定絕對ID(給你的''一個ID並使用'render =「:formId:employeeDetails」')或者將輸出組件綁定到視圖並使用'render =「:#{outputComponent。 clientId}「'。 –
BalusC
非常感謝你,這個伎倆。 – bitsmcgee77