繁体   English   中英

Extjs:从store-> store.removeAt(RowIndex)删除行

[英]Extjs: Delete Row from store-> store.removeAt(RowIndex)

我在GridPanel中的商店中有一堆RowIndexes。 我想从我的商店删除这些。 如果我只有一个,没问题,网格的视图是refrsehd,唯一的条目是。

但是当我有超过0时,例如10个RowIndexes,我就像这里一样循环...

for(rowIndex in indexes)
 {
    store.removeAt(indexes[rowIndex]);
 }

...只从网格中删除了几个条目。 我觉得循环太快了? 我已经暂停了它,但是也没有用。 有没有人有想法? 谢谢!!!

我会尝试以相反的顺序删除行。 你试过吗? 就像是

var i = indexes.length - 1;
for (; i >= 0; i--){
   store.removeAt(indexes[i]);
}

我知道答案已被接受,但我想我会补充说,每次调用Ext.data.Store#removeAt为每个索引调用Ext.data.Store#removeAt都会触发一个datachanged事件。 如果您有datachanged侦听器,则可能会遇到性能问题或意外行为。 由于removeAt(index)只是remove(getAt(index))一个方便的别名,所以你可以这样做。

function batchRemoveAt(store, indexes) {
    var records = Ext.Array.map(indexes, function (index) {
        return store.getAt(index);
    });
    store.remove(records);
}

这将为整个删除触发单个datachanged事件,并为每个删除的记录触发单个remove事件。

尝试调用remove方法的store ,它接受要删除的Model实例或实例数组,或者从中删除记录的索引数组。

store.remove([1,2,3]);

检查文档

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM