【问题标题】:How to call method on ticking the SelectAll checkbox in p:dataTable through ajax如何通过ajax单击p:dataTable中的全选复选框调用方法
【发布时间】:2015-10-01 01:22:06
【问题描述】:

一旦我勾选了数据表顶部的 SelectAll 复选框,我需要您的帮助才能从支持 bean 调用方法。我可以调用方法 ShowTotal 一旦我勾选或取消勾选每个单独项目的复选框,但是当我从顶部勾选 SelectAll 复选框时,不会调用任何侦听器。这是我的代码:

<p:dataTable id="PendingRequests" var="hr" selection="#{hrdirector.selectedRequests}"
             value="#{hrdirector.listPendingRequests}" rowKey="#{hr.requestNo}"
             filteredValue="#{hrdirector.filteredRequests}" widgetVar="dataTableWidgetVar">
  <p:ajax event="rowSelectCheckbox" listener="#{hrdirector.ShowTotal}" process="@this" 
          update=":form:PendingRequests:sum"/>

  <p:ajax event="rowUnselectCheckbox" listener="#{hrdirector.ShowTotal}" process="@this"
          update=":form:PendingRequests:sum"/>

        <p:column selectionMode="multiple" style="width:16px;text-align:center"></p:column>
        <p:column headerText="Request No.">
            <h:outputText value="#{hr.requestNo}"/>
        </p:column>
        <p:column headerText="Request Amount">
            <h:outputText value="#{hr.requestAmount}"/>
        </p:column>
    </p:dataTable>

    <h:outputText id="Sum" value="#{hr.Sum}"/>

我试图在它有选择的列中添加以下代码,但它给了我一个错误:

<p:column selectionMode="multiple" style="width:16px;text-align:center">
<p:ajax listener="#{hrdirector.ShowTotal}" />
</p:column>

【问题讨论】:

  • 下一次,请尝试阅读精彩/精美的手册。这是有原因的
  • 和你的另一篇文章一样,java中的方法按约定以小写开头
  • @Kukeltje 感谢您的建议。实际上,我只是检查展示柜,因为它易于理解并且有示例,但是由于不检查文档而遗漏了很多。
  • 是的,不是所有的东西都在展示中,不是很远
  • 如果答案真的很有帮助(建议更多地使用文档 ;-))并且投票到位......

标签: ajax jsf checkbox primefaces datatable


【解决方案1】:

精彩的 PrimeFaces 文档的第 172 页为您提供了答案。您需要的是 toggleSelect 事件。

【讨论】:

  • 我认为您应该只删除此处的页面参考,因为手册可以更新并且答案可以在页面位置中更改。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2015-05-12
  • 2012-09-08
  • 1970-01-01
  • 2014-03-21
  • 2023-04-02
  • 2010-10-29
  • 2014-02-12
相关资源
最近更新 更多