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

本文介绍了一种在IE浏览器环境下实现表格数据删除的方法,并通过重新配置Store和更新列来保持表格的一致性和正确性。具体步骤包括获取当前视图的滚动位置、收集字段名称、更新数据记录并重新加载表格。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值