ExtJs还不怎么熟悉 希望各位前辈多多指教     userInfoStore.load({params : {start : 0, limit : 20}}); 
    比如这样加载一个数据源 
    
    怎么获得当前是第几页 然后数据加载后停留在当前页面上

解决方案 »

  1.   

    这两个参数还算不出来当前页?
    {start : 0, limit : 20}
      

  2.   

    userInfoStore.load({params : {start : 0, limit : 20}});  
     
    如果是第二页就 
    userInfoStore.load({params : {start : 2, limit : 20}});  
    以此类推白
      

  3.   


    当用户翻页以后 怎么知道用户停留在第几页 ?动态去改变start ?
      

  4.   

    当前第几页:(start / limit) + 1
      

  5.   

    打开源码PagingToolbar.js找到
    onLoad : function(store, r, o){
            if(!this.rendered){
                this.dsLoaded = [store, r, o];
                return;
            }
            var p = this.getParams();
            this.cursor = (o.params && o.params[p.start]) ? o.params[p.start] : 0;
            var d = this.getPageData(), ap = d.activePage, ps = d.pages;        this.afterTextItem.setText(String.format(this.afterPageText, d.pages));
            this.inputItem.setValue(ap);
            this.first.setDisabled(ap == 1);
            this.prev.setDisabled(ap == 1);
            this.next.setDisabled(ap == ps);
            this.last.setDisabled(ap == ps);
            this.refresh.enable();
            this.updateInfo();
            this.fireEvent('change', this, d);
        }这段代码就是翻页操作,你可以重写这个方法,做法是:// 自定义翻页方法
    Ext.PagingToolbar.prototype.doLoad = function(start) {
       // ...
    }
      

  6.   

    应该是找到下面这段doLoad : function(start){
            var o = {}, pn = this.getParams();
            o[pn.start] = start;
            o[pn.limit] = this.pageSize;
            if(this.fireEvent('beforechange', this, o) !== false){
                this.store.load({params:o});
            }
        }源码文件不大 好好看下应该看得懂的.
      

  7.   

    我发现 Ext.PagingToolbar 就是页面下的 bbar 中有一个刷新按钮 刷新以后会停留在当前页上 网上说这个按钮调用的是 store.load 这个方法 只是我没有找到这个方法的源代码 请高人指教 ..
      

  8.   

    Ext.PagingToolbar下:/**
         * Refresh the current page, has the same effect as clicking the 'refresh' button.
         */
        doRefresh : function(){
            this.doLoad(this.cursor);
        },这不就是刷新的代码么.
      

  9.   

        doRefresh : function(){
            var me = this,
                current = me.store.currentPage;        if (me.fireEvent('beforechange', me, current) !== false) {
                me.store.loadPage(current);
            }
        },
      

  10.   


    不好意思 再问一个问题 在我的项目中 我应该上哪去改这段代码呢 ? 
    搜索了整个项目的目录 没有 PagingToolbar.js 文件呀 .. 
      

  11.   

    这个问题解决了 在这里也非常感谢大家 具体:
    就是把参数 start的值改成this.cursor
    其中的this换成bbar控件 代码如下:
    var paging = new com.panels.CurrencyPaging({ store : userInfoStore });
    userInfoStore.load({params : {start : paging.cursor, limit : 20}});
      

  12.   

    对了 参考 :
    http://blog.csdn.net/liziandf/article/details/6697166