如何覆盖pagingtoolbar?

时间:2012-01-17 13:58:54

标签: extjs extjs4

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

我正在尝试使用无限滚动来处理分页工具栏。我已经让组件工作,以便当用户移动无限垂直滚动条时,我使用javascript计算出我们正在使用的页面,并且我想用这个数字更新分页工具栏。类似地,我可以计算用户所处的记录范围,并希望使用此范围更新displaymsg。

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

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

我可以访问哪些商店来更改这些商品吗?

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

我有什么想法或提示我能做到这一点?谢谢。

2 个答案:

答案 0 :(得分: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 hanlder调用。

答案 1 :(得分:0)

看看来源..

有一种方法

// 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();
        }
    },

可能你可以为这样的事情开发一个公共界面。

干杯。 :)