当前位置: 首页 > 知识库问答 >
问题:

Primeface dataTable过滤器选择OneMenu不工作

鞠嘉志
2023-03-14

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

<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单击和第二次选择任何值返回null或dataTable中没有数据显示。

共有1个答案

家浩瀚
2023-03-14

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

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

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

 类似资料:
  • 当我尝试使用时,我得到一个异常。下面是堆栈跟踪: 编辑二:

  • 在过去的三天里,我一直在与错误“跨源请求被阻止:相同的源策略不允许读取http://localhost:8080/demomongo/templateapp/login上的远程资源。”(原因:缺少CORS头'Access-Control-Allow-Origin')。

  • 本文向大家介绍jQuery过滤选择器经典应用,包括了jQuery过滤选择器经典应用的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了经典的jQuery过滤选择器应用,供大家参考,具体内容如下 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。

  • 我试图在表中使用日期选取器添加和删除行。默认情况下,日期选取器不起作用。但是我点击了添加行按钮,它已经工作了。我找不到解决方案。 请参考小提琴位置。

  • 我使用此解决方案来过滤我的。使用该解决方案,我能够在键入时获得结果。但是当我清除搜索小部件时,我没有得到完整的列表,而是得到了空的。 这就是我的结果。https://imgur.com/nwyetEd 这是我的 这是我的 这是我使用过滤器的< code >活动 有人能帮助我吗?