是否可以在rich:dataTable的分页页脚中标记访问过的页码?如果是这样的话,具体是怎么做的?页脚是丰富的:datascroller。
发布于 2011-03-28 17:31:31
好吧,我的解决方案有点不同。我使用jQuery查找生成的页码(它是一堆TD),并更改了它们的css:
<rich:datascroller id="tableScroller" renderIfSinglePage="false" for="projectPlanCreatetable" pageIndexVar="pageNo"
binding="#{ProjectPlanCreateControl.listAction.scroller}" page="#{ProjectPlanCreateControl.scrollerPage}">
<a4j:support event="onpagechange" action="#{ProjectPlanCreateControl.pageChanged}" reRender="visitedPages"
oncomplete="markPages();"/>
</rich:datascroller>
<h:inputHidden id="visitedPages" value="#{ProjectPlanCreateControl.visited}" />
<script type="text/javascript">
function markPages(){
var pages = document.getElementById('mainFrm:projectPlanCreatetable:visitedPages').value;
pagesArr = pages.split(",");
for (var i=0; i<pagesArr.length; i++){
jQuery('td.rich-datascr-inact').filter(function() {
return jQuery(this).text() == pagesArr[i];
}).css('color','red');
}
}
</script>在bean中:
private Integer scrollerPage;
private Set<Integer> visited = new HashSet<Integer>();
public String pageChanged(){
visited.add(scrollerPage);
return "";
}
public String getVisited() {
if (visited == null){
return "";
}
String replaced = visited.toString().replace("[", "").replace("]", "").replace(" ", "");
return replaced;
}
public void setVisited(String visited) {
}
public Integer getScrollerPage() {
return scrollerPage;
}
public void setScrollerPage(Integer scrollerPage) {
this.scrollerPage = scrollerPage;
}发布于 2011-03-25 04:36:21
您可以在rich:datascroller中使用<f:facet name="pages">方面,以自己的方式显示各个页面链接。在支持bean中记录访问过的页面,对访问过的页面应用一个css类。
在这里看一个例子:http://livedemo.exadel.com/richfaces-demo/richfaces/dataTableScroller.jsf?tab=scrollerfacets (点击查看源代码)
发布于 2011-03-25 14:50:54
是否要显示当前查看页面的页码??如果是,您可以使用<rich:datascroller>的pageIndexVar属性来完成此操作,该属性定义当前查看页面的页数。另一方面,pagesVar属性定义<rich:datascroller>中的总页数。
请注意,这两个属性必须在名为pages的<f:facet>中使用。此外,请确保整个<rich:datascroller>都包含在<h:form>中。例如:
<h:form>
<rich:dataTable id="dt" value="#{test.dataList}" var="row" rows="10">
<rich:column>
<h:outputText value="#{row.col1}" />
</rich:column>
<rich:column>
<h:outputText value="#{row.col2}" />
</rich:column>
<f:facet name="footer">
<rich:datascroller pageIndexVar="pageIndex" pagesVar="pages" >
<f:facet name="pages">
<h:outputText value="#{pageIndex} / #{pages}" />
</f:facet>
</rich:datascroller>
</f:facet>
</rich:dataTable>
</h:form>有关更多信息,请参阅official documentation。
https://stackoverflow.com/questions/5422150
复制相似问题