Extjs:从存储中删除行->;store.removeAt(行索引)
我在GridPanel中的一个存储中有一堆行索引。我想从我的商店中删除这些。 如果我只有一个,它没有问题,从网格的观点是refreshD和唯一的入口是远离 但是当我有超过0个,例如10个行索引时,我在这里这样的循环中创建它Extjs:从存储中删除行->;store.removeAt(行索引),extjs,extjs4,store,Extjs,Extjs4,Store,我在GridPanel中的一个存储中有一堆行索引。我想从我的商店中删除这些。 如果我只有一个,它没有问题,从网格的观点是refreshD和唯一的入口是远离 但是当我有超过0个,例如10个行索引时,我在这里这样的循环中创建它 for(rowIndex in indexes) { store.removeAt(indexes[rowIndex]); } …只有少数条目从网格中删除。我觉得循环太快了? 我已经超时了,但也不起作用。 有人有主意吗? 谢谢 尝试调用remove方法store
for(rowIndex in indexes)
{
store.removeAt(indexes[rowIndex]);
}
…只有少数条目从网格中删除。我觉得循环太快了?
我已经超时了,但也不起作用。
有人有主意吗?
谢谢 尝试调用
remove
方法store
哪个帐户
要删除的模型实例或实例数组,或要从中删除记录的索引数组
store.remove([1,2,3])代码>
选中我将尝试按相反顺序删除行。你试过了吗?
差不多
var i = indexes.length - 1;
for (; i >= 0; i--){
store.removeAt(indexes[i]);
}
我知道答案已经被接受,但我想我应该补充一点,每次调用方法时,为每个索引调用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
事件。谢谢,但此操作后不会刷新网格视图。只有当我按下页面工具栏上的刷新按钮时,删除的条目才会消失。使用Ext.getCmp(“ProvGrid”).getView().refresh()尝试了它;但不起作用,商店是如何被引用的?通过变量或直接从绑定组件,存储在我的控制器的init函数中定义:var store=Ext.getCmp('ProvGrid').getStore()。。。引用适用于其他函数,所以我认为这不是问题?!真的很酷!这管用!非常感谢你!!!不知道为什么它是反向工作的,但它确实如此!这是因为在删除行时更改了以下行的行索引。例如,删除索引为5的行时,索引为6的行将移动到索引5。