Я использую ArrayStore и заполняю его, добавляя записи модели. Этот магазин связан с сеткой данных.ExtJs: Магазин, заполненный сеткой, появляется как пустой
Теперь объект arraystore заполняется отлично, но данные не появляются в сетке. Фактически, при отладке я обнаружил, что в хранилище сетки (datagrid.store
) также есть данные, но при этом он не отображается на экране!
Следующий мой код.
Модель:
Ext.define('Ext.ux.window.visualsqlquerybuilder.SQLAttributeValueModel', {
extend: 'Ext.data.Model',
fields: [
{
name: 'attribute',
type: 'string'
},
{ name: 'attributeValue',
type: 'string'
}
]
});
Магазин:
var attrValueStore = Ext.create('Ext.data.ArrayStore', {
autoSync: true,
model: 'Ext.ux.window.visualsqlquerybuilder.SQLAttributeValueModel'
});
Сетка
Ext.define('Ext.ux.window.visualsqlquerybuilder.SQLAttributeValueGrid', {
//requires: ['Ext.ux.CheckColumn'],
autoRender: true,
extend: 'Ext.grid.Panel',
alias: ['widget.attributevaluegrid'],
id: 'SQLAttributeValueGrid',
store: attrValueStore,
columnLines: true,
plugins: [Ext.create('Ext.grid.plugin.CellEditing', {
clicksToEdit: 1
})],
columns: [
{ /*Expression */
xtype: 'gridcolumn',
text: 'Attribute',
sortable: false,
menuDisabled: true,
flex: 0.225,
dataIndex: 'attribute'
},
{ /*Attribute Values*/
xtype: 'gridcolumn',
editor: 'textfield',
text: 'Values',
flex: 0.225,
dataIndex: 'attributeValue'
}
],
initComponent: function() {
this.callParent(arguments);
}
});
Мо Даль Окно отображения сетки
var attributeValueForm = Ext.create('Ext.window.Window', {
title:'Missing Attribute Values',
id: 'attributeValueForm',
height:500,
width:400,
modal:true,
renderTo: Ext.getBody(),
closeAction: 'hide',
items:[
{
xtype: 'attributevaluegrid',
border: false,
//height: 80,
region: 'center',
split: true
}
],
buttons: [
{
id: 'OKBtn',
itemId: 'OKBtn',
text: 'OK',
handler: function() {
Ext.getCmp('attributeValueForm').close();
}
},
{
text: 'Cancel',
handler: function() {
Ext.getCmp('attributeValueForm').close();
}
}
]
});
Теперь во время отображения модального окна, я проверил значение объекта хранилища, а также магазин внутри объекта сетки. Оба имеют правильные данные.
Но когда откроется окно, я получаю пустую сетку
Вы никогда не загружаются в магазин в любом месте , Вы не назначаете ему прокси-сервер или не даете ему встроенных данных. Магазин пуст. –
@EvanTrimboli: Я понимаю вашу точку зрения, но на самом деле я пропустил добавление кода для добавления данных в магазин. Я делаю это отдельно в другом методе, в котором я создаю объект модели, устанавливаю значения для его свойств и добавляю его в хранилище. Таким образом, в хранилище есть данные. – DarkKnightFan