2010-09-09 4 views
1

Я добавляю плагин FilterRow к GridPanel с PagingToolBar. Сетка работает хорошо, за исключением этой проблемы: , если я попытаюсь сортировать или фильтровать столбец, сетка генерирует переменные POST -> sort, dir и все мои фильтры включены. Вместо этого, если я попытаюсь перейти на следующую страницу, это переменные POST -> sort, dir, start, limit. Если я пытаюсь прокручивать страницы, я теряю ранее измененные переменные фильтра. Это мой код:ExtJS - GridPanel с Ext.ux.grid.FilterRow и Ext.PagingToolbar

Ext.onReady(function(){    

    var store = new Ext.data.JsonStore({ 
     url: "get-data-for-grid.php", 
     root: "rows", 
     id:'id', 
     totalProperty:'totalCount',  
     remoteSort: true, 
     sortInfo: { 
      field: 'genere', 
      direction: 'ASC' 
     },  
     autoDestroy: true, 
     fields: [ 
     {name: 'scheda'}, 
     {name: 'topic'}, 
     {name: 'genere'}, 
     {name: 'specie'}, 
     {name: 'autore'}, 
     {name: 'comme'}, 
     {name: 'famiglia'}, 
     {name: 'nomecomune'}, 
     {name: 'datains'} 
     ] 
    }); 

    var filterRow = new Ext.ux.grid.FilterRow({ 
     autoFilter: false, 
     listeners: { 
     change: function(data) { 
      store.load({ 
      params: data 
      }); 
     } 
     } 
    });  

    // create the Grid 
     var grid = new Ext.grid.GridPanel({ 
     store: store, 
     loadMask: true, 
     columns: [ 
      {id:'scheda', header: "Scheda", width: 73, align: 'center', sortable: false, renderer: scheda, dataIndex: 'scheda'},      
      {id:'genere', header: "Genere", width: 130, renderer: gen, sortable: true, dataIndex: 'genere', filter:{ }}, 
      {id:'specie', header: "Specie", width: 150, sortable: true, renderer: spe, dataIndex: 'specie', filter:{ }}, 
      {id:'autore', header: "Autore", width: 150, sortable: true, renderer: all, dataIndex: 'autore', filter:{ }}, 
      {id:'famiglia', header: "Famiglia", width: 150, sortable: true, renderer: fam, dataIndex: 'famiglia', filter:{ }}, 
      {id:'nomecomune', header: "Nome Comune", width: 190, sortable: true, renderer: all, dataIndex: 'nomecomune', filter:{ }}, 
      {id:'datains', header: "Aggior.", width: 75, sortable: true, renderer: data, dataIndex: 'datains'} 
     ], 
     highlightClasses: { 
      ASC: 'x-custom-sort-asc' 
      // DESC stays at default = x-ux-col-sort-desc 
     },   
     bbar: new Ext.PagingToolbar({ 
      pageSize: 15, 
      store: store, 
      displayInfo: true 
     }),  
     plugins: [filterRow], 

     height:660, 
     width:1010, 
     frame:true,     
     title: 
     '<div align="center"><img src="images/testata_micologia.jpg" alt="" height="68" width="974" border="0"></div>', 
     renderTo: "grid-example" 
     });   

    grid.render('grid-example'); 

    store.load({params:{start:0, limit:15}}); 
}); 

Как "Ext.PagingToolbar" генерировать переменный POST фильтром ранее писал (звонкий, жанры, AUTORE, .. в моем примере)?

Спасибо!

ответ

0

Чтобы сохранить параметры фильтра, вы должны использовать свойство baseParams вместо params.

baseParams свойство будет сохраняться по всем вызовам метода load.

Так что я бы осуществить это в изменения слушателя вашего FilterRow:

change: function(data) { 
     Ext.apply(store.baseParams, data); 
     store.load({params:{start:0, limit:15}}); 
    } 
Смежные вопросы