Одной из функций безопасности ASP.NET оказывается гора для масштабирования здесь - добавление свойства "d" при возврате ответа JSON, кажется, сбивает с толку ExtJS, когда я пытаюсь динамически перенастроить панель сетки, вызывая ее сбой припытаясь сгенерировать новую структуру столбцов.
Я следовал этому решению по nicholasnet: http://www.sencha.com/forum/showthread.php?179861-Dynamic-grid-columns-store-fields
, и он прекрасно работает, пока полезная нагрузка JSON не будет обернута вокруг свойства "d",Например,
{"d":{
"metaData": {
"root": "data",
"fields": [{
"type": "int",
"name": "id",
"hidden": true,
"header": "id",
"groupable": false,
"dataIndex": "id"
}, ...omitted for brevity...]
},
"success": true,
"data": [{
"id": "1",
"controller": "Permissions",
"description": "Allow to see permission by roles",
"administrator": true,
"marketing": false
}]
}
}
Я не могу понять, как сказать ExtJS обойти эту проблему. Я попытался установить для свойства "root" средства чтения AJAX значение "d.data"
, но в результате в сетке отображается правильное количество строк, но вообще нет данных.
I 'Мы все дескрипторы свойств, необходимые для метаданных столбца ("name", "header", "dataIndex")
в JSON, поэтому я не считаю, что причиной является структура JSON.Мое главное преимущество на данный момент заключается в том, что в обработчике событий:
store.on
({
'load' :
{
fn: function(store, records, success, operation, eOpts)
{
grid.reconfigure(store,store.proxy.reader.fields);
},
scope: this
}
}, this);
Часть fields
в historyStore.proxy.reader.fields
не определена, когда я передаю JSON в D-образной оболочке.Кто-нибудь есть какие-либо идеи о том, почему это или как решить эту проблему?
редактировать: мой магазин / прокси
Ext.define('pr.store.Store-History', {
extend: 'Ext.data.Store',
model: 'pr.model.Model-History',
proxy: {
type: 'ajax',
url: '/data/history.json',
reader: {
type: 'json',
root: 'd'
}
}
});