Я новичок в Ext JS и пробую различные варианты на Grid. Я создал сетку и добавил ее в панель (Ext.panel.Panel). Сетка выводится с пустыми данными (я не добавил к ней прокси). При возникновении какого-либо события я создаю объект JSON и запускаю loadData
на сетке.Extjs загрузка локального объекта JSON в сетку
Ниже приведен фрагмент кода.
Ext.define('AM.view.grid.Details', {
extend: 'Ext.grid.Panel',
alias: 'widget.details',
title: 'Widget Data',
store: {
autolaod: true,
fields: [{
name: 'widgetid',
mapping: 'widget_id',
type: 'string'
}, {
name: 'widgetname',
mapping: 'widget_name',
type: 'string'
}, {
name: 'widgetnotes',
mapping: 'widget_notes',
type: 'String'
}],
reader: {
type: 'json'
}
},
width: 620,
height: 400,
forceFit: true,
columns: [{
header: 'id',
dataIndex: 'widgetid',
hidden: true
}, {
header: 'Name',
dataIndex: 'widgetname',
width: 150
}, {
header: 'Note',
dataIndex: 'widgetnotes',
width: 150
}],
renderTo: Ext.getBody()
});
У меня есть функция, которая является функцией обратного вызова другого виджета. Когда событие происходит, эта функция getTriggered.
function someFunction(grid) {
var jsonData = formGridData();
grid.store.loadData(jsonData);
}
Пожалуйста, предположим, что сетка создается и у меня есть функция formGridData(), которая преобразует сформированную строку в JSON объект и возвращается.
Итак, когда я запускаю приложение, если jsonData имеет длину 5, то в сетке появляются 5 пустых строк.
Ниже приводится JSONData
[{
'widget_id': 'widget-1',
'widget_name': 'gridpanel',
'widget_notes': 'This is used to handle..'
}, {
'widget_id': 'widget-2',
'widget_name': 'combo',
'widget_note': 'This is used to handle..'
}, {
'widget_id': 'widget-3',
'widget_name': 'panel',
'widget_note': 'This is used to handle..'
}]
Есть ли что-то неправильно в том, что я делаю?
Спасибо,
Фани
У меня есть dataIndexes правильно, я имею в виду, как у вас есть в ответе. – Patton
Возможно, мой ответ не был ясен, я его пересмотрел. Если бы это было ясно, тогда ваш вопрос был неправильным. – Alex
Ooops Я не видел ваших комментариев, это действительно сработало для меня. благодаря – Patton