From ea1604634efcbb0ab64765565cd5be75be48adac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E4=B8=89=E7=94=9F=E7=9F=B3=E4=B8=8A?= Date: Mon, 29 Feb 2016 05:40:15 -0500 Subject: [PATCH] =?UTF-8?q?-=E4=BF=AE=E6=AD=A3=E5=88=A0=E9=99=A4=E5=BD=93?= =?UTF-8?q?=E5=89=8D=E9=80=89=E4=B8=AD=E7=9A=84=E6=96=B0=E5=A2=9E=E8=A1=8C?= =?UTF-8?q?=E6=97=B6=E6=80=BB=E6=98=AF=E5=88=A0=E9=99=A4=E7=AC=AC=E4=B8=80?= =?UTF-8?q?=E8=A1=8C=E7=9A=84=E9=97=AE=E9=A2=98=EF=BC=88lrjnew-8004?= =?UTF-8?q?=EF=BC=89=E3=80=82=20-=E6=96=B0=E5=A2=9E=E8=A1=8C=E4=B9=8B?= =?UTF-8?q?=E5=89=8D=E5=85=88=E6=B8=85=E7=A9=BA=E5=BD=93=E5=89=8D=E9=80=89?= =?UTF-8?q?=E4=B8=AD=E7=9A=84=E5=8D=95=E5=85=83=E6=A0=BC=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../extjs_builder/js/F/extender.js | 70 ++++++++++++++++--- FineUI/release_history.txt | 5 +- 2 files changed, 65 insertions(+), 10 deletions(-) diff --git a/FineUI.Examples/extjs_builder/js/F/extender.js b/FineUI.Examples/extjs_builder/js/F/extender.js index 829fe8b..4668782 100644 --- a/FineUI.Examples/extjs_builder/js/F/extender.js +++ b/FineUI.Examples/extjs_builder/js/F/extender.js @@ -898,6 +898,7 @@ if (Ext.grid.Panel) { var store = me.getStore(); Ext.Array.each(selection, function (record, index) { + // 晕倒:新增行的 record.getId() 居然为 undedined,没办法! selectedRows.push(record.getId()); }); } @@ -1137,22 +1138,67 @@ if (Ext.grid.Panel) { }, + // 获取选中的行 + f_getSelectedRows: function () { + var selectedRows = []; + var sm = this.getSelectionModel(); + if (sm.getSelection) { + var selection = sm.getSelection(); + var store = this.getStore(); + + Ext.Array.each(selection, function (record, index) { + selectedRows.push(store.indexOf(record)); + }); + } + + return selectedRows; + }, + + + // 仅内部使用(f_deleteSelectedRows) + f_getSelectedRowsIndex: function () { + var selectedRows = []; + var sm = this.getSelectionModel(); + if (sm.getSelection) { + var selection = sm.getSelection(); + var store = this.getStore(); + + Ext.Array.each(selection, function (record, index) { + selectedRows.push(store.indexOf(record)); + }); + } + + return selectedRows; + }, + + // 仅内部使用(f_deleteSelectedRows) + f_getSelectedCellIndex: function () { + var selectedCell = [], currentPos; + var sm = this.getSelectionModel(); + if (sm.getCurrentPosition) { + currentPos = sm.getCurrentPosition(); + if (currentPos) { + selectedCell = [currentPos.row, currentPos.columnHeader.f_columnIndex]; + } + } + return selectedCell; + }, // 从Store中删除选中的行(或者单元格) f_deleteSelectedRows: function () { - var me = this; - var store = me.getStore(); + var $this = this; + var store = this.getStore(); - var sm = me.getSelectionModel(); + var sm = this.getSelectionModel(); if (sm.getSelection) { - var rows = me.f_getSelectedRows(); - Ext.Array.each(rows, function (rowId, index) { - store.remove(store.getById(rowId)); + var rows = this.f_getSelectedRowsIndex(); + Ext.Array.each(rows, function (rowIndex, index) { + store.removeAt(rowIndex); }); } else if (sm.getSelectedCell) { - var selectedCell = me.f_getSelectedCell(); + var selectedCell = this.f_getSelectedCellIndex(); if (selectedCell.length) { - store.remove(store.getById(selectedCell[0])); + store.removeAt(selectedCell[0]); } } }, @@ -1179,8 +1225,14 @@ if (Ext.grid.Panel) { } */ + // 清空当前选中的单元格 + me.getSelectionModel().setCurrentPosition(); - me.f_cellEditing.cancelEdit(); + + // 取消正在编辑 + me.f_cellEditing.cancelEdit(); + + var newAddedRecords; //var rowIndex = 0; diff --git a/FineUI/release_history.txt b/FineUI/release_history.txt index ecb4f2c..3854c4f 100644 --- a/FineUI/release_history.txt +++ b/FineUI/release_history.txt @@ -30,7 +30,10 @@ FineUI 严格遵守 ExtJS 对开源软件的规定,不再内置 ExtJS 库, 发布历史 +2016-05-** v4.2.4 - -修正选中表格中不存在行时出错的问题(yygy-8066)。 + +表格增强。 + -修正选中不存在行时出错的问题(yygy-8066)。 + -修正删除当前选中的新增行时总是删除第一行的问题(lrjnew-8004)。 + -新增行之前先清空当前选中的单元格。