[英]Extjs 4.0.7 paging grid with new proxy
我有一个带有商店的分页网格。 我必须更改商店的代理,但是当我这样做并尝试重新加载网格时,它会给出一个加载掩码,并且什么也不做。 你能帮助我吗?
这是原始商店:
var store = new Ext.data.JsonStore({
autoDestroy: true,
proxy: {
type: 'direct',
directFn: Ext.d.Class.Function,
extraParams: {
param: param
},
paramOrder: ['param', 'filter', 'start', 'limit', 'sort'],
reader: {
type: 'json',
root: "rows",
idProperty: 'id',
totalProperty: "all"
}
},
fields: fields,
remoteSort: true,
autoLoad: false,
sorters: sorters
});
原始网格:
var grid = Ext.create('Ext.grid.Panel', {
selModel: selmodel,
title: title,
flex: 1,
store: store,
columns: columns,
bbar: pager = Ext.create('Ext.PagingToolbar', {
store: store,
displayInfo: true,
displayMsg: '{1} / {2}',
emptyMsg: ""
})
//...
新的代理:
var newProxy = Ext.create('Ext.data.Proxy', {
type: 'ajax',
paramsAsHash: false,
url: 'tasks.php',
actionMethods: {
read: 'POST'
},
extraParams: {
task: 'getItems',
id: id
},
reader: {
type: 'json',
root: "rows",
idProperty: 'id',
totalProperty: "all"
}
});
而且我尝试设置代理并加载商店,但是它什么也没做。
grid.getStore().removeAll();
grid.getStore().setProxy(newProxy);
grid.getDockedItems()[2].store.setProxy(newProxy);
grid.getStore().load(); // fails, loading mask but no ajax
任何想法?
这是因为您实际上不是在创建Ajax代理,而是在创建其父类Ext.data.Proxy
。 在以下各行中不解释type
:
var newProxy = Ext.create('Ext.data.Proxy', {
type: 'ajax',
您必须指定实际的类名称:
var newProxy = Ext.create('Ext.data.proxy.Ajax', {
(而且,恕我直言,最好使用新关键字new Ext.data.proxy.Ajax
创建它,以便您尽早发现丢失的内容...)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.