【问题标题】:Is there any work around for RF4 dataScroller pages facet?RF4 dataScroller 页面方面是否有任何解决方法?
【发布时间】:2013-10-21 06:05:07
【问题描述】:

我正在尝试将 RF3 升级到 RF4,将 JSF1.2 升级到 JSF 2。因此,在查看页面时,pageIndexVar 属性已从richFaces 4 中删除!我开始知道在rich faces 4 中,pages facet 没有实现。但在我的应用程序中,我需要显示总行数和当前页码! RF3 中的示例代码是:

<rich:dataScroller id="dataScrollerTop" for="richTableID"
                               pagesVar="pages" pageIndexVar="current"
                               fastControls="hide"  renderIfSinglePage="false" />

pagesVar="pages" pageIndexVar="current"这些属性已在 RF4 中删除。有什么办法可以显示总页数和当前页吗? 如果是,请通过建议任何教程或任何提示来指导我!

还有一个问题:我们可以为 UIComponent 创建页面 facet 以显示行数吗?如果是,请建议我! 提前致谢!

【问题讨论】:

    标签: jsf-2 richfaces


    【解决方案1】:

    使用数据模型类YourDataModel extends ExtendedDataModel implements Arrangeable

        @Override
        public int getRowCount() {... }
    

    使用 getRowCount 方法计算行数。

    当前页面自动存储在 dataScroller 中。你可以添加

        private int pageIndex = 1;
    

    在您的数据模型类中,并在需要时使用它。要在 dataScroller 中设置它,请参见示例(page 属性):

    <rich:dataScroller id="chTableDataScroller"
    renderIfSinglePage="false"
    page="#{chAction.clients.pageIndex}"
    stepControls="show"
    fastControls="#{chAction.clients.rowCount/referenceData.recordsPerPage > 10 ? 'show' : 'hide'}"
    fastStep="10" />
    

    实现后数据模型countOfPages = countOfRows / rowsPerPage。 RowsPerPage 在数据表中的 rows 属性中定义:

    <rich:dataTable rows="#{referenceData.recordsPerPage}"
    value="#{chAction.clients}" var="res" >
    

    【讨论】:

    • 感谢您的回答。但我在 rich:tabs 中实现了多个数据模型,因此所有选项卡都有共同的 pageinationfacets.xtml,如下所示:
    • 已编辑问题,请查看一次。如果您对我提供的内容不清楚,请告诉我您要分析的内容。提前致谢!
    【解决方案2】:

    通过使用渲染器实现 customDataScroller 解决了这个问题! 在 Renderer 类的 doEncodeEnd(..) 方法中,我添加了 mu 分页。现在 dataScroller 的 UI 正在根据我的要求显示。谢谢!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-09-05
      • 2014-11-21
      • 2012-09-09
      • 1970-01-01
      • 2010-09-16
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多