JSF PrimeFaces rowSelect用于从另一个数据表调用的一个数据表

时间:2014-02-28 09:06:15

标签: ajax jsf datatable

我在一个列表中列出了所有购买的Purchase数据表。当您选择一行时,它应该打开一个对话框,显示特定客户的购买列表。此外,在代码中还有一个用于添加新购买的对话框,其中可以从数据表中的先前客户列表中选择Customer

我的问题是,当我在购买表中选择一行时,它在客户数据表中调用rowSelect ajax事件(来自“新购买”对话框内),而不是触发它自己的{{1} }事件打开rowSelect对话框。

Purchase

1 个答案:

答案 0 :(得分:1)

这个问题的解决方案花了我很多年才找到,但事实证明这是一个简单的单行错字。 Customer表和Purchases表的widgetVar是相同的:

<p:dataTable id="CustomerTable" var="customer"
    rowKey="#{customer.id}"
     selection="#{purchasesDAO.selectedCustomerRow}"
     widgetVar="purchasesTableSearch"
     filteredValue="#{purchasesDAO.filteredCustomerRow}"
     selectionMode="single" value="#{purchasesDAO.customerList}"
     style="font-size:10px;">

应该是:

<p:dataTable id="CustomerTable" var="customer"
    rowKey="#{customer.id}"
     selection="#{purchasesDAO.selectedCustomerRow}"
     widgetVar="customerTableSearch"
     filteredValue="#{purchasesDAO.filteredCustomerRow}"
     selectionMode="single" value="#{purchasesDAO.customerList}"
     style="font-size:10px;">

这是由于在开发过程中复制/粘贴代码而在更新代码时遗漏了widgetVar行。将客户数据表中的widgetVar更改为与购买表不同,解决了问题。