【问题标题】:Selection not working after filter event in datatable数据表中的过滤事件后选择不起作用
【发布时间】:2017-05-05 08:38:41
【问题描述】:

我正在使用 primefaces 数据表,它具有用于行选择的过滤器和单选按钮。

<p:dataTable id="dtId" var="bVar" widgetVar="dtWVar"
  value="#{bBean.myList}" filteredValue="#{bBean.bfilter}"
  rowKey="#{bVar.Id}" selection="#{bBean.selectedObj}">
  <p:ajax event="filter" listener="#{bBean.onFilter()}" />

  <p:ajax event="rowSelectRadio"
      actionListener="#{bBean.onSelectRadio()}" />
  <p:column selectionMode="single" headerText="RadioColHeader">
</p:dataTable>

在选择单选按钮时,值会在selectedObj 中设置,但在使用数据表过滤器后它会停止工作。单选按钮被选中,但所选对象未在 selectedObj 中设置。

请建议一种方法,即使在触发过滤事件后,也可以将选定的行值放入选择对象中。

【问题讨论】:

  • 请提供版本信息和minimal reproducible example
  • @Kukeltje 我们正在使用 primefaces 5.1.9 将在一段时间内提供最少的工作代码。
  • 同时,尝试更新版本并查看问题列表...
  • 如果一些 JS 相关的东西已经工作然后停止工作,你可能会在浏览器的 JS 控制台中发现错误。
  • 感谢您的快速回复:),我已将问题修复作为答案发布。

标签: primefaces datatable


【解决方案1】:

这个问题在ajax过滤事件中调用process="@this",然后通过远程命令更新数据表如下:

Ajax 事件 - 数据表内部

&lt;p:ajax event="filter" process="@this" listener="#{bBean.onFilter()}" oncomplete="updateDataTable();" /&gt;

远程命令 - 数据表之外

&lt;p:remoteCommand name="updateDataTable" update="dtId" /&gt;

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-10-04
    • 2021-05-19
    • 2023-04-08
    • 1970-01-01
    • 1970-01-01
    • 2021-05-12
    • 1970-01-01
    • 2012-07-27
    相关资源
    最近更新 更多