所以,我有一个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