【问题标题】:ExtJs grid not refreshing after adding a new record添加新记录后,ExtJs 网格不刷新
【发布时间】:2026-02-14 19:45:01
【问题描述】:

我在网格中使用 ExtJS API 进行 CRUD 操作。我所有的代码都可以正常工作,除了一件小事。当我第一次添加记录时(加载页面时),新记录未显示在网格上,但已添加到数据库中。当我刷新页面并插入记录时,它会在添加后立即显示。这是一种非常奇怪的行为,我什至不知道这里发生了什么。这是我用来插入记录的代码:

insertUser: function (button) {
        var grid = Ext.ComponentQuery.query('#userlist');
        var win = button.up('window');
        form = win.down('form');
        record = form.getRecord();
        values = form.getValues();
        this.getUsersStore().add(values);
        this.getUsersStore().reload();//tried this.getUsersStore().load(); also    
        win.close();
    }

谁能指出这里出了什么问题?谢谢。

【问题讨论】:

  • 试试grid.getView().refresh();?
  • 感谢 99 个红气球。我刚刚删除了行记录 = form.getRecord();一切正常:)

标签: extjs extjs4


【解决方案1】:

添加数据到存储时,需要采用存储记录的格式。

例如

this.getUsersStore().add({username:'Sample User', userid: 210, userphone: '999-999-9000'});

在您的代码中,您似乎是在直接传递值。

如果您正确添加记录,则存储不需要执行 reload() 或刷新,如果您 reload(),则存储会刷新并且您添加的数据将不存在。

【讨论】: