如何在Primefaces中使用可扩展行从数据表中进行搜索?

时间:2016-04-05 08:07:40

标签: jsf primefaces datatable filtering expandable-table

我有一个下拉菜单,如果我选择一个名称类别,它会显示带有扩展行选项的相应数据表。我想以全局方式搜索,但它不会过滤任何内容。我的托管bean名称是showTerm。 该类别显示:

  • 亚洲人详情
  • 欧洲人详情

如果我选择亚洲人的详细信息,它会显示一些人的姓名和地址。在全局过滤器中,如果我提供人的姓名或地址,则不会过滤或显示数据。

这是我的代码:

<p:dataTable id="datatable" var="term" value="#{showTerm.getTerm()}" widgetVar="dtable"
             emptyMessage="No terminologies found with given criteria" filteredValue="#{term.list}">

        <f:facet name="header">
            <h:outputText value="Search fields:" />
            <p:inputText id="globalFilter" onkeyup="dtable.filter()" style="width:150px" placeholder="Enter keyword"/>
            <p:separator />
            Expand the name to see detailed information
        </f:facet>

        <p:column style="width:16px">
            <p:rowToggler />
        </p:column>

        <p:column headerText="Name: ">
            <h:outputText value="#{term.personName}" />
        </p:column>

        <p:rowExpansion>
            <p:panelGrid  columns="1" columnClasses="label,value" style="width:100%">

                <h:outputText value="Name: #{term.personName}" />
                <h:outputText value="Address: #{term.personAddress}" />

我该怎么做?请帮忙。

1 个答案:

答案 0 :(得分:0)

您必须为每列添加“filterBy”属性,以允许全局过滤器过滤数据...

    <f:facet name="header">
        <h:outputText value="Search fields:" />
        <p:inputText id="globalFilter" onkeyup="dtable.filter()" style="width:150px" placeholder="Enter keyword"/>
        <p:separator />
        Expand the name to see detailed information
    </f:facet>

    <p:column style="width:16px">
        <p:rowToggler />
    </p:column>

    <p:column  filterBy="#{term.personName}" headerText="Name: ">
        <h:outputText value="#{term.personName}" />
    </p:column>

    <p:rowExpansion>
        <p:panelGrid  columns="1" columnClasses="label,value" style="width:100%">

            <h:outputText value="Name: #{term.personName}" />
            <h:outputText value="Address: #{term.personAddress}" 
         />
   </p:rowExpansion>

检查this一个globalFilter primefaces ShowCase