Extjs grid增加或删除列后记住滚动条的位置

IE下验证好使。

{
text: "Del", icon: 'Scripts/Ext/resources/images/icons/application_form_delete.png',
action: "Del",
listeners: {
click: function (btn) {
var grid = btn.up("grid");
var me = grid.getView();
var scrollLeft = me.el.getScrollLeft();
var columns = grid.columnManager.getColumns();
var newColumn = 0;
var filedsName = [];
Ext.Array.each(columns, function (name, index, countriesItSelf) {
var dataIndex = name.dataIndex.replace(/CELL/g, '');
//取最大数字
if (Number(dataIndex) > newColumn) {
newColumn = dataIndex;
}
//收集所有name.dataIndex
if (name.dataIndex) {
Ext.Array.push(filedsName, name.dataIndex);
}
});
var columnCellName = 'COL' + newColumn.toString();
var columnname = 'CELL' + newColumn.toString();
var delArray = [];
Ext.Array.push(delArray, columnCellName);
Ext.Array.push(delArray, columnname);
filedsName = Ext.Array.difference(filedsName, delArray);
var records = grid.getStore().data.items;
for (var i = 0; i < records.length; i++) {
delete records[i].data[columnCellName];
delete records[i].data[columnname];
}
var myStore = Ext.create('Ext.data.Store', {
data: records,
fields: filedsName
});
//myStore.on('load', function () {
// mergeCellsNew(grid, [1, 2], false);
//});
grid.reconfigure(myStore, buildColumn_numeric(filedsName));
myStore.loadPage(1, {
callback: function (records, operation, success) {
mergeCellsNew(grid, [1], false);
resizeRowNumber(grid, 3);
me.el.setScrollLeft(scrollLeft);
//mergeCellsNew(grid, [2], false);
//resizeRowNumber(grid, 3);
//griddb.plugins[0].startEdit(myStore.data.items[1], 3);
}
});
}
}
}

原文地址:https://www.cnblogs.com/hqyj/p/7150451.html