如何覆盖分页工具栏?

Posted

技术标签:

【中文标题】如何覆盖分页工具栏?【英文标题】:How to override the pagingtoolbar? 【发布时间】:2012-01-17 13:58:54 【问题描述】:

我想知道如何覆盖分页工具栏的 displaymsg 和页码。

我正在尝试让分页工具栏与无限滚动一起使用。我已经让组件正常工作,因此当用户移动无限垂直滚动条时,我会使用 javascript 计算出我们正在浏览的页面,并且我想用这个数字更新分页工具栏。同样,我计算出用户在哪个记录范围内,并希望使用此范围更新 displaymsg。

我可以修改 html 以直接更改 displaymsg,但我更愿意更改这些 0、1、2 变量:

"Displaying 0-1 of 2 Item(s)"

我可以访问某种商店来更改这些吗?

我不知道页码是否在商店中,如果不是,我可以直接编辑 html 来更改它,而不必担心冲突。

任何想法或提示我可以如何做到这一点?谢谢。

【问题讨论】:

【参考方案1】:

感谢 altrange。这会改变 displaymsg,知道如何改变 文本框中的页码?

你可以自己生成。

所以...创建一些公共方法 -

refreshDisplayMsg(from, to, total) 
    var me = this, 
    displayItem = me.child('#displayItem'),
    msg = Ext.String.format(
                    me.displayMsg,
                    from
                    to,
                    total
    );
    displayItem.setText(msg);
    me.doComponentLayout();

而且这个方法会被store onload hander调用。

【讨论】:

下次扩展您的答案时,请编辑它以添加更多信息。 感谢您的回答,但我已经解决了,我指的是页码...【参考方案2】:

查看来源..

有办法

// private
    updateInfo : function()
        var me = this,
            displayItem = me.child('#displayItem'),
            store = me.store,
            pageData = me.getPageData(),
            count, msg;

        if (displayItem) 
            count = store.getCount();
            if (count === 0) 
                msg = me.emptyMsg;
             else 
                msg = Ext.String.format(
                    me.displayMsg,
                    pageData.fromRecord,
                    pageData.toRecord,
                    pageData.total
                );
            
            displayItem.setText(msg);
            me.doComponentLayout();
        
    ,

也许你可以为这样的东西开发一个公共接口。

干杯。 :)

【讨论】:

谢谢 altrange。这会改变 displaymsg,知道如何更改文本框中的页码吗?

以上是关于如何覆盖分页工具栏?的主要内容,如果未能解决你的问题,请参考以下文章

UIPageViewController:如何添加非分页工具栏或其他“覆盖”元素?

如何更改布局 xml 以使工具栏不覆盖项目?

Chrome 开发者工具:如何找出覆盖 CSS 规则的内容?

为啥我的工具输出会覆盖自身,我该如何解决?

word分页符怎么加入?

FineReport报表开发工具中,如何对行进行强制分页,但是列全部显示?