首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >rich:dataTable分页-标记rich:datascroller的访问页面

rich:dataTable分页-标记rich:datascroller的访问页面
EN

Stack Overflow用户
提问于 2011-03-25 00:12:14
回答 3查看 7.5K关注 0票数 0

是否可以在rich:dataTable的分页页脚中标记访问过的页码?如果是这样的话,具体是怎么做的?页脚是丰富的:datascroller。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-03-28 17:31:31

好吧,我的解决方案有点不同。我使用jQuery查找生成的页码(它是一堆TD),并更改了它们的css:

代码语言:javascript
复制
<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中:

代码语言:javascript
复制
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;
}
票数 0
EN

Stack Overflow用户

发布于 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 (点击查看源代码)

票数 1
EN

Stack Overflow用户

发布于 2011-03-25 14:50:54

是否要显示当前查看页面的页码??如果是,您可以使用<rich:datascroller>pageIndexVar属性来完成此操作,该属性定义当前查看页面的页数。另一方面,pagesVar属性定义<rich:datascroller>中的总页数。

请注意,这两个属性必须在名为pages<f:facet>中使用。此外,请确保整个<rich:datascroller>都包含在<h:form>中。例如:

代码语言:javascript
复制
     <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。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5422150

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档