我一直在寻找它这么长的时间,(从我自己的角度),这是一个应该已经做了很基本的行为后重新应用排序/刷新前段时间:您按列进行排序网格,说“NAME
”,修改记录,名称为“AAA
”变成“ZZZ
”,它发送给服务器,服务器回答“OK”与“ZZZ
”这样的价值已经更新,但在同一个地方停留,即排序顺序不被刷新。ExtJS的:数据网格:加载
有没有办法自动做到这一点?哪个事件,哪个代码?怎么样?
我一直在寻找它这么长的时间,(从我自己的角度),这是一个应该已经做了很基本的行为后重新应用排序/刷新前段时间:您按列进行排序网格,说“NAME
”,修改记录,名称为“AAA
”变成“ZZZ
”,它发送给服务器,服务器回答“OK”与“ZZZ
”这样的价值已经更新,但在同一个地方停留,即排序顺序不被刷新。ExtJS的:数据网格:加载
有没有办法自动做到这一点?哪个事件,哪个代码?怎么样?
我问过的Sencha's forum并在历史上第一次我已经得到答案了,之前的计算器。所以,分享答案,这里是我的代码工作:
Ext.define('Ext.data.StoreHandleErrors', {
extend: 'Ext.data.Store',
alias: 'data.storehandleerrors',
constructor: function(config) {
this.callParent([config]);
this.on(
'write',
function(me, opts) {
this.sort();
},
this
);
}
});
说明:我重写构造函数,以便每个“写”事件被称为每次也就是时间的记录被发送到服务器,这使我们始终相信这是正确刷新重新排序的商店。这是可能是“太多”的通用方法(=无需重新排序再次每个写),但(1)它适用于所有商店(2)无需进行定制硬编码的东西像阿卜杜勒建议(尽管阿卜杜勒的回答可能更适合于一个特定的一段代码,使其仅一次)。
一旦你从服务器得到“OK”你可以显式调用存储方法。是这样的:
myStore.sort("name","ASC");
或者,如果你有排序的列的集合,你可以利用sorters
财产的可用存储。像:
myStore.sort(myStore.sorters); // this uses the existing sorting rules applied to the store
希望这会有所帮助。
其实我无法理解你的代码。如果你为你添加一些解释,那会很好。 – Praveen