|
@@ -545,26 +545,48 @@ var sheetCommonObj = {
|
|
|
workBook.commandManager().setShortcutKey('myEnter', GC.Spread.Commands.Key.enter, false, false, false, false);
|
|
|
},
|
|
|
//解决esc后触发了编辑结束的保存事件,显示与实际数据不同问题
|
|
|
- bindEscKey: function (workBook, editStarting = null, editEnded = null) {
|
|
|
- let sheet = workBook.getActiveSheet();
|
|
|
+ bindEscKey: function (workBook, sheets) {
|
|
|
+ function isDef(v){
|
|
|
+ return typeof v !== 'undefined' && v !== null;
|
|
|
+ }
|
|
|
workBook.commandManager().register('myEsc', function () {
|
|
|
- sheet.unbind(GC.Spread.Sheets.Events.EditStarting);
|
|
|
- sheet.unbind(GC.Spread.Sheets.Events.EditEnded);
|
|
|
- let row = sheet.getActiveRowIndex();
|
|
|
- let col = sheet.getActiveColumnIndex();
|
|
|
- let orgV = sheet.getValue(row, col);
|
|
|
- if(!isDef(orgV)){
|
|
|
- orgV = '';
|
|
|
- }
|
|
|
- if(sheet.isEditing()){
|
|
|
- sheet.endEdit();
|
|
|
- sheet.setValue(row, col, orgV);
|
|
|
- }
|
|
|
- if(editStarting){
|
|
|
- sheet.bind(GC.Spread.Sheets.Events.EditStarting, editStarting);
|
|
|
+ let activeSheet = workBook.getActiveSheet();
|
|
|
+ let hasTheSheet = false;
|
|
|
+ for(let sheetObj of sheets){
|
|
|
+ let sheet = sheetObj.sheet;
|
|
|
+ if(sheet === activeSheet){
|
|
|
+ hasTheSheet = true;
|
|
|
+ let editStarting = sheetObj.editStarting;
|
|
|
+ let editEnded = sheetObj.editEnded;
|
|
|
+ if(editStarting){
|
|
|
+ sheet.unbind(GC.Spread.Sheets.Events.EditStarting);
|
|
|
+ }
|
|
|
+ if(editEnded){
|
|
|
+ sheet.unbind(GC.Spread.Sheets.Events.EditEnded);
|
|
|
+ }
|
|
|
+ let row = sheet.getActiveRowIndex();
|
|
|
+ let col = sheet.getActiveColumnIndex();
|
|
|
+ let orgV = sheet.getValue(row, col);
|
|
|
+ if(!isDef(orgV)){
|
|
|
+ orgV = '';
|
|
|
+ }
|
|
|
+ if(sheet.isEditing()){
|
|
|
+ sheet.endEdit();
|
|
|
+ sheet.setValue(row, col, orgV);
|
|
|
+ }
|
|
|
+ if(editStarting){
|
|
|
+ sheet.bind(GC.Spread.Sheets.Events.EditStarting, editStarting);
|
|
|
+ }
|
|
|
+ if(editEnded){
|
|
|
+ sheet.bind(GC.Spread.Sheets.Events.EditEnded, editEnded);
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
- if(editEnded){
|
|
|
- sheet.bind(GC.Spread.Sheets.Events.EditEnded, editEnded);
|
|
|
+ //容错处理,以防没把所有工作簿的表格信息传入参数
|
|
|
+ if(!hasTheSheet){
|
|
|
+ if(activeSheet.isEditing()){
|
|
|
+ activeSheet.endEdit();
|
|
|
+ }
|
|
|
}
|
|
|
});
|
|
|
workBook.commandManager().setShortcutKey(null, GC.Spread.Commands.Key.esc, false, false, false, false);
|