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

筛选后的Primefaces数据表排序

孔永年
2023-03-14

我有一个p:dataTable,它存储已处理表单的结果,我执行以下操作:

  1. 填充表单值。
  2. 提交。
  3. 已填充数据表--对任何列进行筛选。
  4. 更改表单值。
  5. 提交。
  6. 使用新结果填充数据表。
  7. 对任意列排序--将显示来自#3的筛选结果。

我有一个用于筛选值的arraylist,但我没有在bean中对它做任何操作。提交时,我调用actionListener,该actionListener将dataTable强制转换为PrimeFaces.Components.dataTable.dataTable,然后在处理表单之前对其调用resetValue()(参见下面的代码片段)。

我尝试了多种方法来重置、清除和更新dataTable,但我无法绕过上面的问题。仅供参考,这是我的p:dataTable标记:

<p:dataTable
            id="resultsDataTable"
            rendered="#{entityReportBean.isResultsPopulated}"
            var="change"
            value="#{entityReportBean.entityChangeDto}"
            styleClass="resultsPanel"
            rows="100"
            paginator="true"
            paginatorPosition="top"
            paginatorTemplate="#{PreviousPageLink}  Previous  {CurrentPageReport}  Next  {NextPageLink}"
            filterEvent="enter"
            filteredValue="#{entityReportBean.filteredResults}" >

这是ActionListener:

    public void onSubmit() {
            FacesContext context = FacesContext.getCurrentInstance();
            DataTable resultsTable = (DataTable) context.getViewRoot().findComponent("results:resultsDataTable");
            resultsTable.resetValue();
                ...

共有1个答案

叶德运
2023-03-14

所以我意识到尝试在actionListener中执行任何操作都没有意义,因为它没有在sort上调用。因此,我在dataTable上添加了一个ajax“sort”事件,并在侦听器中添加了ResultStable.updateValue(entityChangeDto);。现在一切都好了。

 类似资料:
  • 我有一个primefaces的惰性数据表,如下所示: 这是我的实体类: 正如你已经可以看到我的每一个'收据'对象在datable有一个关系(ManyToOne)到一个'用户'对象(类)。在我的数据中,当我添加: 它可以显示收据所属的用户名。这也适用于 字段在第2列。我的问题是,当我试图排序/过滤第一和第二列在我懒惰的数据,我得到以下错误,因为关系: 由于exception说我需要在查询中包含use

  • 筛选数据 你可以通过 3 种方式筛选数据: 点击字段框中的向下箭头,然后选择“筛选”。 使用筛选窗格。 右击图表上的系列或数据点。 【提示】如果要清除筛选,则需要使用筛选窗格。 排序数据 你可以通过 2 种方式排序数据: 点击字段框中的向下箭头,然后选择“排序”。 使用排序窗格。

  • 筛选数据 你可以通过 3 种方式筛选数据: 点击字段框中的向下箭头,然后选择“筛选”。 使用筛选窗格。 按住 Control 键并点按在图表的系列或数据点。 【提示】如果要清除筛选,则需要使用筛选窗格。 排序数据 你可以通过 2 种方式排序数据: 点击字段框中的向下箭头,然后选择“排序”。 使用排序窗格。

  • 筛选数据 你可以通过 3 种方式筛选数据: 点击字段框中的向下箭头,然后选择“筛选”。 使用筛选窗格。 右击图表上的系列或数据点。 【提示】如果要清除筛选,则需要使用筛选窗格。 排序数据 你可以通过 2 种方式排序数据: 点击字段框中的向下箭头,然后选择“排序”。 使用排序窗格。

  • 我开始在我的项目中使用primefaces,我马上就遇到了问题。我有一个列表,其中包含一些我用实体管理器从数据库中获取的东西,我在primefaces数据表的视图中显示了它。在我的后台bean中,我有:List getList(),在这里我使用实体管理器从数据库中检索记录,并立即返回。。 和myService: 我的豆子: 视图: 这种方式primefaces排序不起作用,我在堆栈上的某个地方读到

  • 该页显示列表中的正确值。然而,当我尝试选择一个项目。它不起作用。 我能在列表中选择一个项目吗?