2013-07-09 1 views
1

У меня есть Datatable с разбиением на страницы, и я хочу изменить текущую страницу с помощью командной строки за пределами Datatable, как я могу ее получить?Изменить страницу Первичные данные Datatable с разбиением на страницы из командной строки

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

Приветствия!

ответ

12

Это установит страницу таблицы на первый один

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

}

Или на стороне клиента:

widgetVar.getPaginator().setPage(pageindex); 

EDIT: "Первый" атрибут указывает индекс первой строки, подлежащей отображению

+0

Спасибо вам ответить ! Хорошо это знать, но я действительно хочу установить любую страницу. '' находится в другом datatable, когда я нажимаю на commandLink, я могу знать, какой номер страницы, есть ли способ установить страницу с этим номером? Приветствую. – Alavaros

+0

О, подождите! Все, что мне нужно, в вашем ответе, я подумал, что с 'setFirst' вы меняете paginator, я только делал' d.setFirst (numberOfPage) '. Благодаря!!! PD: Может быть, если имя метода было чем-то вроде 'setCurrentPage', было бы более интуитивным. – Alavaros

+0

Поблагодарите U так много, это экономит мой день –

1

Для меня работает очень хорошо, но вы должны ввести полное имя компонент

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

Это нормально, но теперь в primefaces 5.1 на стороне клиента, вы должны сделать, как:

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

 Смежные вопросы

  • Нет связанных вопросов^_^