我试图弄清楚如何使用richfaces datascroller 进行真正的分页。
目前我的查询从表中提取所有数据,我想要它,所以当您单击数据滚动器的下一步按钮时,它将查询数据库以获取接下来的 20 行。
我了解如何编写查询来限制行,但我不确定如何让数据滚动条的下一步按钮调用特定方法。
我看到有很多人在 Richfaces 论坛上发布潜在解决方案,但他们都使用数据模型。由于我没有使用 ORM,我不确定如何将这些解决方案适合我所拥有的。
任何帮助表示赞赏。
<rich:extendedDataTable id="resultsTable" value="#{tableBacking.results}" var="results" sortMode="single" rowKeyVar="row">
<rich:columns value="#{tableBacking.columns == null ? '' : tableBacking.columns}" var="columns" index="ind" id="column#{ind}" sortBy="#{results[ind].data}" rendered="#{tableBacking.columns != null}">
<f:facet name="header">
<h:outputText value="#{columns.columnDescription}" />
</f:facet>
<h:outputText value="#{results[ind].data}" />
</rich:columns>
</rich:extendedDataTable>
<rich:datascroller for="resultsTable" page="#{tableBacking.page}" renderIfSinglePage="false" />
支持豆
public class TableBacking {
private List<List<TableData>> results = null;
private int page = 0;
public int getPage() {
return page;
}
public void setPage(int page) {
this.page = page;
}
public List<List<TableData>> getResults() throws Exception {
return results;
}
public void setResults(List<List<TableData>> results) {
this.results = results;
}
private void getData(String whereClause) {
try {
DataDao dd = new DataDao();
results = dd.getData(); // dd.getData just runs a query on a table and puts the results in a List of lists.
} catch (Exception e) {}
}