目的: 若Grid畫面有 CheckBoxModel ,則判斷選擇資料會錯誤 ,
已勾選資料,但編輯時,仍會顯示"請先選擇一筆資料!! "
--> Template 的錯誤, 更 TMGrid.js & TMSingleViewEdit.js 即可
處理說明: 方法1>將 parent 的 onclick 解除 Listener
不呼叫 parent.onclick function , 只呼叫 child.onclick function
V20306 繼承自 TMSingleViewEdit class, onClick時,會先呼叫 parent .onClick
(因 constructor: function (config){ ... ; this.callParent(config);} )
方法2>置換 V20306.grid_Single 元件,將 grid.SelModel 改成 checkboxModel
1>方法一: *.js 移除 parent .onclick function - 改用自定的 onclick
//兩種方法均可 - un("click",handlerFn) - removeEventListener("click", handlerFn);
Ext.getCmp('btn_edit').un("click", Ext.getCmp('btn_edit').events.click.listeners[0].fn);
//Ext.getCmp('btn_edit').removeEventListener("click", Ext.getCmp('btn_edit').events.click.listeners[0].fn);
Ext.getCmp('btn_edit').on("click", function (me, e, eOpts) {
var sel_recs = Ext.getCmp('grid_Single').getView().getSelectionModel().getSelection();
if (sel_recs.length > 0) {
var sel_rec = sel_recs[0];
setFormData(sel_recs);
buttonModel.setModelType(2);
Ext.getCmp("tab2").setDisabled(true);
Ext.getCmp("TMSingleViewEdit").setActiveTab("tab1");
}
else {
mywarnalert("請先選擇一筆資料 !!");
}
setFieldsCls('myform', ['ASPNO', 'LCNO', 'MCNM', 'ORDID', 'PCTP', 'FICNMA', 'STLCT', 'PCQTY', 'LRULT', 'LRUWT', 'LRUHG'], ['ASPNO'],['ASPNO','RPNOAF','LCNO','LRWET','MCNM','ASPSTA','ORDID','PCTP','FICNMA','STLCT','PCQTY','ASLV','ASPRMK','NGONOAF','PN','LCITM','LCETDT','LCCHID','LCORAO','LRULT','LRUWT','LRUHG','WTLV','ITPR']);
showFormButton('myform', ['btn_RPNOAF', 'btn_LRWET', 'btn_MCNM', 'btn_ASPSTA', 'btn_ORDID', 'btn_PCTP', 'btn_FICNMA', 'btn_STLCT', 'btn_ASPRMK', 'btn_NGONOAF', 'btn_PN', 'btn_LCCHID']);
return false;
});
方法2: 置換 selModel 成 Ext.selection.CheckboxModel
另外Template TMGrid.js & TMSingleViewEdit.js 也要換成最新版本
Ext.onReady(function () {
var TMSingleViewEdit = Ext.create('TMSingleViewEdit');
Ext.getCmp('grid_Single').destroy(); //20220905
var grid_Single = Ext.create('grid_Single', {
id: 'grid_Single',
resizable: true,
selModel: Ext.create('Ext.selection.CheckboxModel', {
selectionMode: 'SIMPLE',
listeners: {
/*selectionchange: function (cb, selected, eOpts) {
//view.selModel.getSelection()
},*/
RowMouseDown: function (view, record, item, index, e) {
var me = this;
if (index !== -1) {
if (!me.allowRightMouseSelection(e)) {
return;
}
if (e.shiftKey && me.lastFocused) {
me.selectRange(me.lastFocused, record, e.ctrlKey);
me.processSelection(view, record, item, index, e);
}
if (!me.isSelected(record)) {
me.mousedownAction = true;
me.processSelection(view, record, item, index, e);
} else {
me.mousedownAction = false;
}
}
}
}
})
});
Ext.getCmp('tab2').add(grid_Single); //將grid加入到tab裡面
Ext.getCmp('tab2').updateLayout();