2010-09-09 61 views
1

我已经使用PagingToolBar将“FilterRow”插件添加到GridPanel。除了这个问题,网格工作良好: 如果我尝试排序或过滤一个列,网格生成此POST变量 - >排序,目录和所有我的过滤器启用。 相反,如果我尝试去下一页这个POST变量 - > sort,dir,start,limit。 如果我尝试滚动页面,我会丢失之前发布的过滤器的变量。 这是我的代码:ExtJS - 带有Ext.ux.grid.FilterRow和Ext.PagingToolbar的GridPanel

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变量以前发布的(genere,硬币,AUTORE ..在我的例子)?

谢谢!

回答

0

为了保留您的过滤器参数,您必须使用baseParams属性而不是商店的params属性。

baseParams属性将在所有调用的方法load坚持。

所以我会在你的变化实现这个监听你的FilterRow的:

change: function(data) { 
     Ext.apply(store.baseParams, data); 
     store.load({params:{start:0, limit:15}}); 
    }