目的: V120102 - 分頁勾選 - 保留分頁勾選的資料 - 雅嵐_2
處理說明: 1> *_JSON.js , 定義 PK_LIST 儲存 PK
CHK_PK_OBJ.PKLIST : 記錄目前勾選的 PK 字串
2>[全部選取] : 將資料的 PK 存入 CHK_PK_OBJ.PKLIST
3>[全部取消] : 將CHK_PK_OBJ.PKLIST清空
4>Column ["CHECK"] . renderer 時,
1>>若目前資料為勾選(rec.get("CHECK")=true) :
若目前資料 PK 未存 在 CHK_PK_OBJ.PKLIST , 則加入本資料. PK
2>>若目前資料為未勾選(rec.get("CHECK")=false) :
將PK 從 CHK_PK_OBJ.PKLIST 移除
CHK_PK_OBJ.PK_LIST = jQuery.grep(CHK_PK_OBJ.PK_LIST, function (value) {
return value != item;
});
5> *.cs 若按[全部選取]鈕(par_paging==false),本頁已顯示計算欄位,
--> 不需計算欄位, 加快顯示速度
if (par_paging == false)
{ return ds; }
1>V120101_JSON.js
//2023/07/14 microed , 將 V120201 改成 雅嵐版本 - 分頁勾選
Ext.define('CHK_PK_OBJ', { PK_LIST: [], //儲存 PK_LIST });
var CHK_PK_OBJ = Ext.create('CHK_PK_OBJ');
var J_columns = [
{ header: "", xtype: "rownumberer", width: 50, align: "center", sortable: false },
{
//2023/07/14 microed , 將 V120201 改成 雅嵐版本 - 分頁勾選
header: "勾選",
dataIndex: "CHECK", width: 40, xtype: 'checkcolumn', menuDisabled: true, sortable: false,
//rec : 目前資料欄位值
renderer: function (value, metadata, rec, rowIndex, colIndex, store) {
//var item = record.get('PROM_ID') + '&' + record.get('CR_NO') + '&' + record.get('ITEM_NO');
var item = rec.get('BITM'); //PK
var chkd = '';
if (rec.get('CHECK') === true) {
if (CHK_PK_OBJ.PK_LIST.indexOf(item) == -1) {
CHK_PK_OBJ.PK_LIST.push(item);
}
chkd = 'checked';
rec.set('CHECK', true);
}
else if (rec.get('CHECK') === false) {
rec.set('CHECK', false);
//將本item ,由 Array 中移除
CHK_PK_OBJ.PK_LIST = jQuery.grep(CHK_PK_OBJ.PK_LIST, function (value) {
return value != item;
});
}
else if (typeof rec.get('CHECK') === "undefined") { //往上或下一頁
if (CHK_PK_OBJ.PK_LIST.indexOf(item) > -1) {
chkd = 'checked';
if (CHK_PK_OBJ.PK_LIST.indexOf(item) == -1) {
CHK_PK_OBJ.PK_LIST.push(item);
}
rec.set('CHECK', true);
} else {
rec.set('CHECK', false);
}
}
var cbx = "<input type='checkbox' "
+ chkd + " > ";
return cbx;
},
},
2>V120102.js
//按鈕 : [批次新增][下載匯入格式]
var BtnAry = [
{ //2023/07/14 microed , 將 V120201 改成 雅嵐版本 - 分頁勾選
xtype: 'button', text: '全部選取', id: 'SelAllBtn', iconCls: 'icon-check',
listeners: {
click: function () {
Ext.getCmp('grid_Single').store.each(function (rec) {
rec.set('CHECK', true);
});
//將 所有資料.PK 加入 CHK_PK_OBJ.PK_LIST
Ext.Ajax.request({
url: '../api/V120102API/getGridData_M?par_paging=false',
method: 'POST',
params: { all: 1 },
async: false, //將非同步功能關閉
failure: function (response, opts) {
},
success: function (response, opts) {
CHK_PK_OBJ.PK_LIST = [];
var obj = Ext.decode(response.responseText);
obj.T1.forEach(function (item, i) {
CHK_PK_OBJ.PK_LIST.push(item['BITM']);
});
}
});
}
}
}, //end of 全部選取
{
xtype: 'button', text: '全部取消', id: 'unSelAllBtn', iconCls: 'icon-check',
listeners: {
click: function () {
//unSelAllBtn_click();
Ext.getCmp('grid_Single').store.each(function (rec) {
rec.set('CHECK', false);
});
CHK_PK_OBJ.PK_LIST = [];
}
}
}, //end of 全部取消
沒有留言:
張貼留言