extjs Как получить сетку - PullRequest
       6

extjs Как получить сетку

1 голос
/ 15 января 2012

В 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"]);
    }
});

Консоль отладчика Chrome Javascript ->

   Uncaught ReferenceError: grid is not defined

Ответы [ 2 ]

6 голосов
/ 15 января 2012

Перед тем, как позвонить grid.getStore(), необходимо определить «сетку».Вы можете просто сделать var grid = this; прямо перед вызовом, потому что вы определяете функцию addRecord изнутри сетки.

EDIT:

Я только что заметил, что это былоне вызывается изнутри панели сетки с магазином, а какой-то другой панелью.То, что вам нужно сделать, это установить идентификатор конфигурации на панели сетки.Например, id: MyGridPanel Возможно, на нем уже установлена ​​конфигурация id, и вам просто нужно выяснить, что это такое.Если вы используете конструктор ExtJS, то может фактически уже иметь значение "MyGridPanel".Тогда вы бы назвали это так:

var grid = Ext.getCmp("MyGridPanel");

тогда вы бы сделали:

grid.getStore().getRange()
0 голосов
/ 15 января 2012

попробуйте изменить button.on('click', me.onSubmitBtnClick, me) на button.on('click', Ext.bind(me.onSubmitBtnClick, me), me)

Это похоже на проблему с областью, в вашем onSubmitBtn() методе this, вероятно, ссылается на неправильный объект (например, окно или кнопку),а не объект сетки, который вы хотите.

...