Добавление данных в GridPanel в ExtJS - PullRequest
1 голос
/ 27 ноября 2009

Я застрял с, казалось бы, простой проблемой: добавление данных в мою ExtJS Gridpanel. У меня есть сетка с некоторыми начальными данными.

var myData = [['data1','data2']];

var myReader = new Ext.data.ArrayReader({}, [
            {name: 'Col1'},
            {name: 'Col2'},
            );

var datastore = new Ext.data.Store({
            data: myData,
            reader: myReader
            });
grid = new Ext.grid.GridPanel({
            store: datastore,
   ...
   etc

Это все работает нормально. Теперь я хотел бы периодически добавлять новые данные в эту сетку (есть функция, которая генерирует массивы данных). Однако я не могу заставить это работать. Пробовал datastore.add, но безрезультатно.

Есть идеи?

Ответы [ 3 ]

3 голосов
/ 27 ноября 2009

Что вы передали datastore.add?

Попробуйте это:

datastore.add(new datastore.recordType({
    Col1: 'data3',
    Col2: 'data4'
}));
1 голос
/ 18 декабря 2011

Вы должны перейти на это:

 datastore.add(new datastore.recordType(['data3', 'data4']));
0 голосов
/ 27 ноября 2009

Должна быть проблема с данными, которые вы передаете в качестве параметра метода add. Появилась ли какая-либо ошибка в Firebug? Если так, что это?

Метод add принимает в качестве параметра массив объектов Ext.data.Record. Поэтому, если у вас есть массивы данных, которые вы хотите добавить в таблицу, каждый массив необходимо будет преобразовать в формат записи, прежде чем вы сможете передать его в хранилище. Например:

var new_data = [['data3','data4'], ['data5','data6']];

for (var i = 0, len = new_data.length; i < len; i++) {
    datastore.add(new datastore.recordType({
           Col1: new_data[0],
           Col2: new_data[1]
        })
    );
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...