目的: Grid [新增] --> [存檔]資料後, Locate 至原本的新增的那筆資料
處理說明: 1> Grid 有分頁處理, 若新增的那筆資料, 位置在其他頁,要如何處理
2> store 要 如何 Scroll 至該筆資料
2> store 要 如何 Scroll 至該筆資料
3> store.findby 用法
--> 若 [存檔]後, store.reload() ,則新增的該筆資料可能不見,
所以應該由前端 取得 MAXITM 後, 直接設定 store.欄位值, 不重新 reload();
1>store.reload()後, 找出剛才新增的那筆資料
//onclick : 會先執行 partent.click , 才執行 this.click
Ext.getCmp('btn_save').on('click', function () {
console.log("btn_save click my");
//gridstore.reloadGirdData();
var cur_recs = Ext.getCmp("grid_Single").getSelectionModel().getSelection();
var cur_rec = cur_recs[0];
console.log("cur_rec=", cur_rec);
var Tmp_CLS, Tmp_DITM,Tmp_REPN;
var np = {};
Tmp_CLS = cur_rec.data["CLS"].toString();
Tmp_DITM = cur_rec.data["DITM"].toString();
Tmp_REPN = cur_rec.data["REPN"].toString();
np = {
CLS: Tmp_CLS,
DITM: Tmp_DITM,
REPN: Tmp_REPN,
}
console.log("np=", np);
//gridstore.reload(); 必需在 onload event - 讀完資料後, 才 findBy , 找到的index才會準
gridstore.reload();
//gridstore.find("DITM", Tmp_DITM);
gridstore.on('load', function () {
console.log("inside onload");
//若新增的資料在另一分頁, 則 reload()後, 無法找到
// --> 所以存檔時,即時更新 store的欄位值 , 不重新 reload() & 不locate 剛才編輯的資料
var Tmp_index = gridstore.findBy(function (record, id) {
var Tmp_bol = true;
//console.log("record.data[CLS].toString()", record.data["CLS"].toString());
//console.log("record.data[DITM].toString()", record.data["DITM"].toString());
//console.log("record.data[REPN].toString()", record.data["REPN"].toString());
Tmp_bol = record.data["CLS"].toString() == Tmp_CLS
&& record.data["DITM"].toString() == Tmp_DITM
&& record.data["REPN"].toString() == Tmp_REPN;
console.log("Tmp_bol=", Tmp_bol);
return Tmp_bol; // true : 有找到
});
console.log(" index =", Tmp_index);
cur_rec = gridstore.getAt(Tmp_index);
Ext.getCmp("grid_Single").getSelectionModel().select(cur_rec);
console.log(" Ext.getCmp(grid_Single).getSelectionModel().select(cur_rec); " );
});
console.log("after onload ");
//datastore.ITM欄位值設為 MAXITM
//mysuccessalert("btn_save click");
});