繁体   English   中英

具有新代理的Extjs 4.0.7分页网格

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM