ExtJS自带表格组件中的行号,在删除某一行或某几行后,行号会变得不连续。因为源码中的函数如下:
1 renderer: function(value, metaData, record, rowIdx, colIdx, store) { 2 if (this.rowspan){ 3 metaData.cellAttr = 'rowspan="'+this.rowspan+'"'; 4 } 5 6 metaData.tdCls = Ext.baseCSSPrefix + 'grid-cell-special'; 7 return store.indexOfTotal(record) + 1; 8 }
通过第8行可以看出来,返回值是 store.indexOfTotal(record) + 1; 所以即使删除了这一行,它的行号还是这条数据在整个store中的位置。
可以把这个返回值改成 return rowIdx + 1;
这样在删除某一行的代码后面添加一句刷新的代码就行了,如:
myStore.remove(selection);
grid.view.refresh();