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

primefaces-数据表过滤器

戎高爽
2023-03-14

我正在尝试在datatable(primefaces 3.5)中进行筛选。仅当用户单击commandLink时才应触发筛选器。

<h:commandLink title="#{open}"
onclick="$('#form\\:filteredTable\\:statusColumn_filter').val('OPEN'), filteredTable.filter()">
<h:graphicImage name="16x16.png" styleClass="ico" />
</h:commandLink>

我的桌子:

<h:form id="form">
    <h:panelGroup>
        <div>
            <p:dataTable widgetVar="filteredTable" var="y" value="#{x}" rendered="#{w.showFilterButtons}" filteredValue="#{w.filteredX}">
                <p:column id="statusColumn" headerText="label"
                    filterBy="#{y.status}" filterMatchMode="exact"
                    filterStyle="display:none;"
                    filterOptions="#{w.statuses}"> 
                    <h:outputText value="#{y.status.name}"/>
                </p:column>
            </p:dataTable>
        </div>
    </h:panelGroup>
</h:form>

我有3个问题与此代码:

1-过滤器不工作。如果我点击命令链接,页面会重新加载,但没有任何内容被过滤。可能是因为#form\: filteredTable\:statusColumn_filter'). val()返回未定义。所以我想我没有设置过滤器的值(对吗?)

2-我想做一个默认的过滤器,这样当datatable第一次加载时,它就已经被一个状态过滤了。

3-这个数据在谷歌地图的弹出窗口中。但是当我点击命令链接时,整个页面都会重新加载,所以弹出窗口是“关闭的”,地图会回到最初的缩放。这样,用户将不得不再次缩放,点击地图中的标记,再次打开弹出窗口,以查看过滤后的数据。这可不好。有一种方法只重新加载可更新的?

共有1个答案

夏侯航
2023-03-14

我弄明白了,忘了在这里发布我的解决方案。

服务器端:值“x”是默认值的列表。当用户单击commandButton时,将调用一个方法来更新列表。

命令按钮:

<p:commandButton actionListener="#{bean.upadteXList}" 
    update="filteredTableId"
    oncomplete="filteredTable.filter()"
/>

数据表:

<h:form id="form">
    <h:panelGroup>
        <div>
            <p:dataTable id="filteredTableId" widgetVar="filteredTable" var="y" value="#{x}" rendered="#{w.showFilterButtons}">
                <p:column id="statusColumn" headerText="label"> 
                    <h:outputText value="#{y.status.name}"/>
                </p:column>
            </p:dataTable>
        </div>
    </h:panelGroup>
</h:form>
 类似资料:
  • 在我的应用程序中,我使用全局过滤器搜索Primefaces数据表中的记录,并在同一数据表上应用了DataExporter。 当我搜索任何记录并进行导出时,它会返回给我一个完整的数据列表,而不是过滤列表。 我的开发环境是:java 6.0、Primefaces 3.2、JSF2.1、GlassFish Server 3.1.2、Netbeans 7.1.1 登记在我的dataTable和dataEx

  • 我有一个可供您下载文件的日期。它有效。但是,当我尝试下载过滤后返回的文件时,它是列表中的第一个。 这是我的文件,其中包含可数据: <代码> 这是支持Bean负责下载的方法: <代码> 这是backingBean负责下载的helper方法:< code> <代码>

  • 我将primefaces数据表与bootsfaces一起使用,我想解决一个CSS冲突。 从primefaces showcase实现过滤器示例: 给我这个结果:datatable过滤器示例很好 但是,在页面中添加bootsfaces组件,例如(唯一的更改是添加一个空

  • 我对使用PrimeFaces 3.4.1和JSF 2.1.6的dataTable有以下问题。第一次加载页面时,数据表中充满了数据库中的数据,但每当在页面上执行操作(编辑链接、数据表排序或过滤)时,数据表就会丢失其数据。DataTable包含来自此类的元素: 在dataTable上执行操作后进行调试时,我们只在envioDatasujeto字段上保留数据,元素上的其他所有数据都会丢失。 这是xhtm

  • 在Primefaces showcase上,左侧菜单上有一个搜索输入。菜单看起来像一个手风琴面板,每个键向上都会触发某种ajax来过滤手风琴选项卡。 他们是如何做到这一点的?我查看了他们的展示案例,但只看到DataTable的类似示例,而没有看到AccordionPanel的任何示例。

  • 永远不要信任外部输入。请在使用外部输入前进行过滤和验证。filter_var()和 filter_input() 函数可以过滤文本并对格式进行校验(例如 email 地址)。 外部输入可以是任何东西:$_GET 和 $_POST 等表单输入数据,$_SERVER 超全局变量中的某些值,还有通过 fopen('php://input', 'r') 得到的 HTTP 请求体。记住,外部输入的定义并不局