2015-10-06 88 views
3

我正在使用ExtJS 5.0.1。我有一個不自動加載的網格。一旦通過使用TopBar中的單擊按鈕手動加載商店,網格就會收到記錄。 我想在這個網格上實現無限滾動。我的商店有額外的參數需要傳遞給後端以獲取記錄。第一頁加載後,對於第二頁,沒有額外的參數傳遞給後端。我該如何解決這個問題? 我的店看起來如下 - >EXTJS 5.0:無限網格滾動無法在store中使用extraParams

Ext.define('MyStore', { 
    // extend: 'Ext.data.BufferedStore', 
    extend: 'Ext.data.Store', 
    model : 'MyModel', 

    remoteSort: true, 
    buffered: true, 
    leadingBufferZone: 10, 
    trailingBufferZone: 10, 
    pageSize: 100, 

    proxy: { 
    type : 'rest', 
    format: 'json', 
    url : '/myApp/list', 
    extraParams: { 
     fromDate: '', 
     toDate: '' 
    }, 
    reader: { 
     type: 'json', 
     rootProperty: 'data', 
     totalProperty: 'totalCount' 
    } 
    } 
}); 

我的網格看起來如下 - >

Ext.define('MyGridl', { 
    extend: 'Ext.grid.Panel', 
    requires: [ 
    'MyStore' 
    ], 
    layout: 'fit', 
    loadMask: true, 
    viewConfig: { 
     preserveScrollOnRefresh: true 
    },   
    initComponent: function() { 
    this.id = 'myGrid'; 
    this.store = new MyStore(); 
    this.callParent(arguments); 
}, 
overflowY: 'auto', 
frame: true, 
columns: [{ 
    xtype: 'rownumberer', 
    width: 50, 
    sortable: false 
},{ 
    text: 'Column1', 
    dataIndex: 'Col1', 
    flex: 1 
},{ 
    text: 'Column2', 
    dataIndex: 'Col2', 
    flex: 1 
} 
], 
plugins: [ 
{ 
    ptype: 'bufferedrenderer', 
    trailingBufferZone: 10, 
    leadingBufferZone: 10, 
    scrollToLoadBuffer: 10 
} 
], 
tbar: { 
    items: [{ 
     xtype  : 'datefield', 
     id   : 'fromDate', 
     emptyText: 'Enter From Date', 
     listeners : { 
      render : function(datefield) { 
       datefield.setValue(Ext.Date.add(new Date(), Ext.Date.DAY, -5)); 
      } 
     } 
    },{ 
     xtype  : 'datefield', 
     id   : 'toDate', 
     emptyText: 'Enter To Date', 
     listeners : { 
      render : function(datefield) { 
       datefield.setValue(new Date()); 
      } 
     } 
    },{ 
     xtype: 'button', 
     text: 'Filter by Date',          
     style: { 
      marginLeft: '15px' 
     }, 
     scope: this, 
     handler: function(me){  
      var store = Ext.getStore('myStore'), 
      fromDay = me.up().down('#fromDate').getValue(), 
      toDay = me.up().down('#toDate').getValue(); 

      store.removeAll(); 
      store.load({ 
       params:{ 
        fromDate: fromDay, 
        toDate: toDay 
       } 
      }); 
     }     

    }      
    ] 
} 
}); 
+0

添加在後端總數解決修復了這個問題我的問題是加載更多記錄。但是當第二頁加載時,我無法將額外的參數發送到後端。我該如何解決這個問題? – KavitaC

回答

2

我加入

store.removeAll(); 
        store.currentPage = 1; 
        store.getProxy().setExtraParam("fromDate", fromDay); 
        store.getProxy().setExtraParam("toDate", toDay); 
        store.load();