【问题标题】:How to detect row selection in Primefaces Datatable?如何检测 Primefaces Datatable 中的行选择?
【发布时间】:2018-07-30 12:46:59
【问题描述】:

我使用 Prime Faces 6.2 来构造复选框列。有这个样本:

<p:dataTable id="List"
                 value="#{tickets}"
                 lazy="true"
                 paginator="true"
                 paginatorTemplate="{FirstPageLink} {PreviousPageLink} {CurrentPageReport} {NextPageLink} {LastPageLink}"
                 currentPageReportTemplate="{startRecord}-{endRecord} из {totalRecords}"
                 rows="20"
                 rowKey="#{ticket.id}"
                 selection="#{ticketForm.abstractMTSBUExportTickets}"
                 var="ticket"
                 emptyMessage="Записи в данной категории отсутствуют">

<p:column selectionMode="multiple" style="width:40px; text-align:center">
    <!-- <p:ajax event="click" listener="#{form.abstractMTSBUExportTickets}" /> --> // first try
    <!-- <p:commandLink id="select" action="doSome" /> --> // second try
</p:column>

使用 ajax 的目的是使页面上的某些按钮在至少选中一个复选框时可见。 首先,我尝试将 p:ajax 标签插入列标签,但出现异常:

 <p:ajax> Unable to attach behavior to non-ClientBehaviorHolder parent

更明显的方法是将命令链接插入其中,但它什么也没做。 那么,有什么练习可以做到这一点吗?感谢您提前回答。

【问题讨论】:

    标签: primefaces jsf-2


    【解决方案1】:

    是的,您很接近,但您在数据表上的 Ajax 是什么,而不是在复选框上。 PF 在数据表上提供这两个 Ajax 事件,用于通知或选中或取消选中框...

     <p:datatable>
           <p:ajax event="rowSelect" listener="#{dtSelectionView.onRowSelect}" update=":form:mybutton" />
           <p:ajax event="rowUnselect" listener="#{dtSelectionView.onRowUnselect}" update=":form:mybutton" />
           ...
    </p:datatable>
    

    有关详细信息,请参阅 Showcase 中的 Select Events 示例:https://www.primefaces.org/showcase/ui/data/datatable/selection.xhtml

    您可以简单地在 Select 和 Unselect 方法中执行类似的操作,这将触发更新您的选择,您可以使用 EL 表达式启用按钮...

    <p:commandButton id="mybutton" disabled="#{ticketForm.abstractMTSBUExportTickets.size > 0}" />
    

    【讨论】:

    • 是的。有用。对我来说,我只需添加“rowSelectCheckbox”和“rowUnselectCheckbox”事件和更新按钮。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-26
    • 2013-10-29
    • 2013-08-05
    • 1970-01-01
    • 2019-01-10
    • 2013-04-24
    • 1970-01-01
    相关资源
    最近更新 更多