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