extjs如何获得网格

BAR*_*BAR 1 variables grid extjs

在Designer中,我将网格名称设置为等于MyGrid

在单击按钮addRecord被调用时,它会失败,其中行正在寻找未定义的网格.

如何定义此MyGrid以便它引用面板中的网格?

Ext.define('MyApp.view.MyPanel', {
    extend: 'MyApp.view.ui.MyPanel',

    initComponent: function() {
        var me = this;
        me.callParent(arguments);

        var button = me.down('button[text=Submit]');

         button.on('click', me.onSubmitBtnClick, me);
    },

    addRecord: function(myRecordArray) {

        var rows = grid.getStore().getRange(); // ERROR happens here

            console.log(rows);


    },

    onSubmitBtnClick: function() {
        this.addRecord(["ll", "kk", "mm"]);
    }
});
Run Code Online (Sandbox Code Playgroud)

Chrome Javascript调试器控制台 - >

   Uncaught ReferenceError: grid is not defined
Run Code Online (Sandbox Code Playgroud)

Aci*_*ier 6

在你打电话之前,grid.getStore()你需要定义"网格".您可以var grid = this;在调用之前执行,因为您正在从网格内部定义addRecord函数.

编辑:

我只是注意到这不是从网格面板内部调用商店而是其他面板.您需要做的是在网格面板上设置id配置.例如,id: MyGridPanel可能已经有一个id配置设置,你只需要找出它是什么.如果您使用的是ExtJS设计器,它实际上可能已设置为"MyGridPanel".然后你会这样称呼它:

var grid = Ext.getCmp("MyGridPanel");
Run Code Online (Sandbox Code Playgroud)

然后你会做:

grid.getStore().getRange()
Run Code Online (Sandbox Code Playgroud)