RichFaces: Как сбросить страницу в datascroller после изменения значений в dataTable
Я имею rich:datascroller
для меня rich:dataTable
который работает хорошо, за исключением того, что когда я нахожусь на любом номере страницы (скажем, 5) и выполняю операцию поиска (или любую операцию, которая отображает dataTable). Пагинация покажет страницу 5, но я хочу, чтобы она была сброшена на страницу 1., когда произойдет операция.
На этом изображении, когда я иду на страницу 5 и снова нажимаю кнопку Поиск или выполняю очистку и поиск, нумерация страниц по-прежнему настроена на страницу 5, а не обратно на страницу 1.
Вот мой фрагмент кода:
<rich:datascroller id="prodDataScroller" for="prodClassificationOutputTable"
rows="100" maxPages="10" fastStep="3" renderIfSinglePage="false"
immediate="false" page="#{prodClassificationBean.firstPage}">
</rich:datascroller>
<rich:dataTable id="prodClassificationOutputTable" border="0"
width="100%" columnClasses="col" headerClass="column-header"
style="overflow:auto;" rowClasses="odd,even" align="center"
value="#{prodClassificationBean.outputClassificationWrappers}"
var="prodClassificationRow" rows="100" rowKeyVar="row" immediate="true">
<!-- ... -->
<rich:dataTable>
Я проверил другие решения. Я пытался реализовать page
атрибут для datascroller, но, похоже, он не работает. Я создал атрибут firstpage
в бэк-бине, установленном в "1", когда происходит поиск, поэтому атрибут страницы в datascroller будет иметь значение 1. Но это не решает проблему.
Я хотел бы знать, где я иду не так.
1 ответ
Я смог решить проблему самостоятельно. Вот что я сделал:
<rich:datascroller id="prodDataScroller" for="prodClassificationOutputTable"
rows="100" maxPages="10" fastStep="3" renderIfSinglePage="false"
binding="#{prodClassificationBean.scroller}">
</rich:datascroller>
<rich:dataTable id="prodClassificationOutputTable" border="0" width="100%"
columnClasses="col" headerClass="column-header"
style="overflow:auto;" rowClasses="odd,even" align="center"
value="#{prodClassificationBean.outputClassificationWrappers}"
var="prodClassificationRow" rows="100" rowKeyVar="row" immediate="true">
<rich:column align="center" width="20%">
<f:facet name="header">
<h:outputText value="ID" />
</f:facet>
<h:outputText style="font-weight:bold" value="#{prodClassificationRow.outputId}"/>
</rich:column>
</rich:dataTable>
Важно отметить, что binding="#{prodClassificationBean.scroller}"
в датакроллере.
Теперь в бобе:
public class ProdClassificationBean {
private transient HtmlDatascroller scroller;
//getter and setter for scroller
// inside the action operation()
if (scroller != null) {
scroller.setPage("1");
}
} // end of class