【问题标题】:Change page of Primefaces Datatable with pagination from commandlink使用命令链接的分页更改 Primefaces 数据表的页面
【发布时间】:2013-07-06 19:26:22
【问题描述】:

我有一个带分页的数据表,我想用数据表外部的命令链接更改当前页面,我该如何获得它?

<p:commandLink title="changePage" action="#{myBean.changeMethod}"
   update="myDataTable" />
<p:dataTable id="myDataTable" var="myItem" paginator="true" rows="1"
   value="#{myBean.ListOfItem}" binding="#{myBean.DataTable}">
  ...
  ...
</p:dataTable>

您好!

【问题讨论】:

    标签: jsf-2 primefaces datatable pagination commandlink


    【解决方案1】:

    没关系,但现在在客户端的 primefaces 5.1 中,您必须这样做:

    PF('widgetVar').getPaginator().setPage(pageindex);
    

    【讨论】:

      【解决方案2】:

      这会将表格的页面设置为第一页

      public void changeMethod() {
      final DataTable d = (DataTable) FacesContext.getCurrentInstance().getViewRoot()
          .findComponent("myDataTable");
      int first = 0;
      d.setFirst(first);
      

      }

      或者在客户端:

      widgetVar.getPaginator().setPage(pageindex);
      

      编辑:“first”属性表示要显示的第一行的索引

      【讨论】:

      • 感谢您的回答!很高兴知道它,但我真的想设置任何页面。 &lt;p:commandLink ... /&gt; 在其他数据表中,当我点击commandLink 时,我可以知道页码是多少,有什么方法可以设置该页码的页码吗?问候。
      • 哦等等!!!我需要的只是你的回答,我认为用setFirst 你改变了分页器,我只做了d.setFirst(numberOfPage)。谢谢!!! PD:也许如果方法名称类似于setCurrentPage 会更直观。
      • 非常感谢,它节省了我的时间
      【解决方案3】:

      对我来说效果很好,但您必须输入整个组件名称

      FacesContext.getCurrentInstance().getViewRoot().findComponent("form:panel:datatable");
      

      【讨论】:

        猜你喜欢
        • 2013-04-25
        • 1970-01-01
        • 2013-07-03
        • 1970-01-01
        • 2019-07-13
        • 2010-11-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多