Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf 2 使用commandlink的分页更改Primefaces数据表的页面_Jsf 2_Primefaces_Datatable_Pagination_Commandlink - Fatal编程技术网

Jsf 2 使用commandlink的分页更改Primefaces数据表的页面

Jsf 2 使用commandlink的分页更改Primefaces数据表的页面,jsf-2,primefaces,datatable,pagination,commandlink,Jsf 2,Primefaces,Datatable,Pagination,Commandlink,我有一个分页的Datatable,我想用Datatable之外的commandlink来更改当前页面,如何获得它 <p:commandLink title="changePage" action="#{myBean.changeMethod}" update="myDataTable" /> <p:dataTable id="myDataTable" var="myItem" paginator="true" rows="1" value="#{myBean.Lis

我有一个分页的Datatable,我想用Datatable之外的commandlink来更改当前页面,如何获得它

<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>

...
...

你好

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

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

或在客户端:

widgetVar.getPaginator().setPage(pageindex);

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

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

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

或在客户端:

widgetVar.getPaginator().setPage(pageindex);

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

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

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

对我来说,这很好,但是你必须输入整个组件的名称

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

没关系,但现在在客户端的primefaces 5.1中,您必须执行以下操作:

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

没关系,但现在在客户端的primefaces 5.1中,您必须执行以下操作:

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

谢谢你的回答!很高兴知道这一点,但我真的很想设定任何页面。
是另一个数据表,当我点击commandLink时,我可以知道页码是什么,有没有办法用这个数字设置页面?你好。哦,等等!!!我所需要的只是你的回答,我想用
setFirst
你更改分页器,我只做了
d.setFirst(numberOfPage)
。谢谢PD:也许如果方法名类似于
setCurrentPage
会更直观。非常感谢你,这节省了我的时间谢谢你的回答!很高兴知道这一点,但我真的很想设定任何页面。
是另一个数据表,当我点击commandLink时,我可以知道页码是什么,有没有办法用这个数字设置页面?你好。哦,等等!!!我所需要的只是你的回答,我想用
setFirst
你更改分页器,我只做了
d.setFirst(numberOfPage)
。谢谢PD:也许如果方法名像
setCurrentPage
那样会更直观一些。非常感谢你,它节省了我的时间