Gridview ExtJS-带有Ext.ux.grid.FilterRow和Ext.PagingToolbar的GridPanel

Gridview ExtJS-带有Ext.ux.grid.FilterRow和Ext.PagingToolbar的GridPanel,gridview,extjs,filtering,Gridview,Extjs,Filtering,我已经使用PagingToolBar将“FilterRow”插件添加到GridPanel。除此问题外,网格工作正常: 如果我尝试对列进行排序或筛选,网格将生成此POST变量-->sort、dir和所有启用的筛选。 相反,如果我尝试转到下一页,则此POST变量-->排序、目录、开始、限制。 如果我试图滚动页面,我会丢失以前发布的过滤器变量。 这是我的代码: Ext.onReady(function(){ var store = new Ext.data.JsonS

我已经使用PagingToolBar将“FilterRow”插件添加到GridPanel。除此问题外,网格工作正常: 如果我尝试对列进行排序或筛选,网格将生成此POST变量-->sort、dir和所有启用的筛选。 相反,如果我尝试转到下一页,则此POST变量-->排序、目录、开始、限制。 如果我试图滚动页面,我会丢失以前发布的过滤器变量。 这是我的代码:

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.onReady(函数(){
var store=new Ext.data.JsonStore({
url:“获取grid.php的数据”,
根:“行”,
id:'id',
totalProperty:'totalCount',
remoteSort:是的,
索廷福:{
字段:“genere”,
方向:“ASC”
},      
自动销毁:对,
字段:[
{name:'scheda'},
{name:'topic'},
{name:'genre'},
{name:'specie'},
{name:'autore'},
{name:'comme'},
{name:'famiglia'},
{name:'nomecomune'},
{name:'datains'}
]
});
var filterRow=new Ext.ux.grid.filterRow({
自动筛选:false,
听众:{
更改:功能(数据){
存储容量({
参数:数据
});
}
}
});       
//创建网格
var grid=新建Ext.grid.GridPanel({
店:店,,
loadMask:是的,
栏目:[
{id:'scheda',标题:“scheda”,宽度:73,对齐:'center',可排序:false,呈现器:scheda,数据索引:'scheda'},
{id:'genre',标题:“genre”,宽度:130,呈现器:gen,可排序:true,数据索引:'genre',过滤器:{},
{id:'specie',header:'specie',width:150,sortable:true,renderer:spe,dataIndex:'specie',filter:{},
{id:'autore',标题:“autore”,宽度:150,可排序:true,呈现器:all,数据索引:'autore',筛选器:{},
{id:'famiglia',标题:“famiglia”,宽度:150,可排序:true,呈现器:fam,数据索引:'famiglia',过滤器:{},
{id:'nomecomune',标题:“nomecomune”,宽度:190,可排序:true,呈现器:all,数据索引:'nomecomune',筛选器:{},
{id:'datains',头:“Aggior.”,宽度:75,可排序:true,呈现器:data,dataIndex:'datains'}
],
高光等级:{
ASC:'x-custom-sort-ASC'
//DESC保持默认值=x-ux-col-sort-DESC
},        
bbar:新的Ext.PagingToolbar({
页面大小:15,
店:店,,
displayInfo:true
}),    
插件:[filterRow],
身高:660,
宽度:1010,
框架:对,
标题:
'',
renderTo:“网格示例”
});          
grid.render('grid-example');
load({params:{start:0,limit:15}});
});
“Ext.PagingToolbar”如何生成先前发布的过滤器的POST变量(在我的示例中是genre、specie、autore等)


谢谢大家!

为了持久化筛选参数,必须使用存储的属性而不是
params
属性

baseParams属性将在对
load
方法的所有调用中保持不变

因此,我将在您的
FilterRow
的更改侦听器中实现这一点:

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