【问题标题】:Primefaces dataTable filter selectOneMenu not workingPrimefaces dataTable过滤器selectOneMenu不起作用
【发布时间】:2016-06-29 17:38:24
【问题描述】:

我正在使用 PrimeFaces 5.1,在我的项目数据表中使用过滤器。在文本过滤器中工作正常,但下拉过滤器工作不正常(即)在下拉列表中我显示部门,第一次从下拉列表中选择任何值工作正常另一次我选择下拉它不返回任何值显示在数据表中。我选择从下拉列表中选择一个第一个值也会抛出空指针异常。

<p:dataTable id="datalist" widgetVar="datalist" var="user" value=#{beanList.userList}>
<p:column headerText="Department" filterBy="#{user.deptname}"
            filterMatchMode="exact" >
      <f:facet name="filter">
          <p:selectOneMenu onchange="PF('datalist').filter()">
                <f:selectItem itemLabel="ALL" itemValue="#{null}"
                              noSelectionOption="true" />
                <f:selectItems value="#{datalist.deptList}" />
          </p:selectOneMenu>
      </f:facet>
      <h:outputText value="#{user.depatname}" />
</p:column>
</p:dataTable>

我的疑问是默认值 ALL click 和第二次选择任何值返回 null 或 dataTable 中没有数据显示。

【问题讨论】:

    标签: jsf primefaces


    【解决方案1】:

    由于我不知道您的托管 Bean 的范围:尝试比请求更长的范围(请参阅 PrimeFaces 5.1 用户文档),并为您的表提供一个值“filteredValue”,如下所示:

    <p:dataTable id="datalist" widgetVar="datalist" var="user"
    value="#{beanList.userList}" filteredValue="#{beanList.filteredUserList}">
    

    这样,您可以确保将过滤后的表/列表保存在托管 bean 的字段中,并且内容不会丢失。 另外,请确保您的托管 Bean 类是可序列化的 (See this stackoverflow post)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-15
      • 2012-10-02
      • 2016-08-19
      • 2014-07-07
      • 2014-10-04
      • 1970-01-01
      • 2011-10-18
      • 2014-08-25
      相关资源
      最近更新 更多