2012-07-03 2 views
2

В EXTJS 3 я определяю хранилище данных и сетку, он работает нормально. теперь проблема в пейджинге, я хочу вручную управлять событием кнопки «Далее».EXTJS 3, как вручную управлять событием поискового вызова?

Я попытался использовать событие «beforechange» в пейджинге, но он не работает, потому что он «ПЕРЕД». как вручную загрузить хранилище с параметром?

Сторона сервера - C#.

Благодаря

Магазин

var store = new Ext.data.DirectStore({ 
      storeId: 'store', 
      directFn: Report.Function1, 
      autoLoad: false, 
      paramsAsHash: false, 
      paramOrder: 'param1|start', 
      .... 
      fields: [ ... ], 
      remoteSort: false,   
     }); 

подкачки является

var pager = new Ext.PagingToolbar({ 
      store: store, 
      displayInfo: true, 
      pageSize: this.pageSize, 

      listeners: { 
       beforechange: function (paging, params) { 
        currentPage = params.start; 
        report_search(params); 
       } 
      } 
     }); 

function report_search(page) { 
    var store = Ext.StoreMgr.lookup('store'); 
    store.removeAll(); 

    store.load({ 
     params: { 
      param1: Ext.getCmp("param1").getValue(),   
      start: page.start 
     } 
    }); 
} 

ответ

0

кажется, что вы хотите применить специальные параметры в магазин, прежде чем нагрузка будет сделана.
Для этого - вам нужно:

this.store.on('beforeload', this.applyParams.createDelegate(this)); 
... 

applyParams: function(store, options) { 
    options.params = options.params || {}; 

    var params = { 
     param1: Ext.getCmp("param1").getValue() 
    }; 

    Ext.apply(options.params, params); 
} 

Я надеюсь, что вам не нужно отказываться от «Next» нажатие кнопки, потому что магазин может быть загружен из других мест (автоматически, вручную из других мест).