如何在 Extjs 中清除网格

Posted

技术标签:

【中文标题】如何在 Extjs 中清除网格【英文标题】:How to clear the grid in Extjs 【发布时间】:2013-07-24 11:17:10 【问题描述】:

我在 Extjs 中有一个 GridStore,它可以存储带有两个网格列的记录。当网格中存在一条记录时我遇到问题,如果我删除网格,它在服务器端已成功删除,但网格中仍然存在。

示例代码:

    xtype: 'grid',
    store: 'SampleStore',
    border: false,
    width : 542,
    ref: '../sampleGrid',
    id: 'sampleGrid',
    columns: [
       
       xtype: 'gridcolumn',
       dataIndex: 'name',
       header: 'Name',
       sortable: true,
   .............
    view: new Ext.grid.GridView(
    forceFit: true
    )

提前感谢您的帮助。

【问题讨论】:

我不会在视图中使用 forceFit 选项。建议在网格本身上使用 flex。 (与您的问题无关,但这是一个建议) 【参考方案1】:

确保您正在使用:

grid.getStore().remove(record); //remove record from grid
grid.getStore().sync(); //sync with server

如果要删除所有项目,请执行以下操作:

grid.getStore().removeAll();
grid.getStore().sync();

但要小心!这将删除所有内容!

【讨论】:

清除存储时不要忘记刷新网格。如果你不这样做,可能会发生奇怪的行为。 grid.view.refresh()【参考方案2】:

这对我有用:

Ext.ComponentQuery.query('#yourGrid')[0].getStore().removeAll();

希望对你有帮助。

【讨论】:

以上是关于如何在 Extjs 中清除网格的主要内容,如果未能解决你的问题,请参考以下文章

如何在gridview中跟踪是不是在extjs中应用了过滤器?

ExtJS 存储/网格重置

extjs 可编辑网格 - 清除修改记录列表

EXTJS 4 - 网格过滤器或商店过滤器清除商店现有的过滤器

如何在网格中显示菜单 - ExtJS 5?

如何在 ExtJS 4 网格面板中保留垂直滚动条?