当网格页面发生变化时,Ext Js存储参数会发生变化

时间:2016-02-08 15:53:06

标签: javascript extjs extjs6 extjs6-classic

我有一个网格,其中存储在服务器端被过滤。这是商店:

var _store = Ext.create('Ext.data.Store', {
    model: isemriModel,
    storeId: 'storeFiltered' + _id,
    pageSize: 5,
    autoLoad: { filter: JSON.stringify(filterObject) },
    proxy: {
        type: 'ajax',
        actionMethods: {
            read: 'POST'
        },
        url: _url,
        extraParams: {
            kullaniciAdi: _userName,
            sifre: _password,
            filter: JSON.stringify(filterObject)
        },
        reader: {
        rootProperty: 'isemirleri',
        totalProperty: 'totalCount'
        }
    },
    listeners: {
        beforeload: function (store, operation, opts) {
        },    
        load: function (store) {
        }
    }
});

这是我的问题:当我搜索包含特定字母,名称等的记录时(例如包含a的名称)。首页显示正确。但是当我从分页工具栏更改网格页面时,将清除过滤器参数并显示未过滤的记录。

我也试过

store.load({ params: { filter: JSON.stringify(filterObject) } });

但它不起作用。有人可以帮忙吗?

注意:我在服务器端进行过滤,而不是在ext商店进行过滤。是否可以使用带分页工具栏的网格加载具有动态变化参数的存储。

2 个答案:

答案 0 :(得分:0)

在加载功能上再次将您的过滤器设置为当前页面。 此外,如果商店是相同的,页面有不同的过滤器。实际上,如果您尝试返回已过滤的页面,则可能不会清除过滤器。

只需每个页面都有不同的过滤器。

如果您在多个页面中使用相同的过滤器,请记得清除所有页面过滤器

答案 1 :(得分:0)

你应该使用

remoteFilter: true

以及商店的内置过滤器功能。您的代理页面_url将通过其他方式获取过滤器,但您的过滤器将保留在不同的加载项之间。