我一直在尋找它這麼長的時間,(從我自己的角度),這是一個應該已經做了很基本的行爲後重新應用排序/刷新前段時間:您按列進行排序網格,說「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