Вам необходимо изменить dataIndex
на не вложенный столбец.
Вы можете добавить логическое поле в модель, например:
{
name: "floor", "mapping": "attributes.floor"
}
И в столбцах:
{
text: "Floor",
dataIndex: 'floor',
filter:{
type: 'number'
}
}
Отредактировано - проверьте скрипку: https://fiddle.sencha.com/#view/editor&fiddle/30gr
Ext.application({
name: 'Fiddle',
launch: function () {
Ext.Msg.alert('Fiddle', 'Welcome to Sencha Fiddle!');
var store = Ext.create("Ext.data.Store", {
fields: [{
"name": "name",
"type": "string"
}, {
"name": "floor",
"mapping": function (data) {
console.log(data);
if (data && data.attributes && Ext.isNumber(data.attributes.floor)) {
return data.attributes.floor;
}
return null
}
}],
data: [{
"name": "A1",
"attributes": {
"floor": 1
}
}, {
"name": "B1",
"attributes": {
"floor": 1
}
}, {
"name": "A2",
"attributes": {
"floor": 2
}
}, {
"name": "A3",
"attributes": {
"floor": 3
}
}, {
"name": "ANU",
"attributes": {
"floor": null
}
}, {
"name": "AN"
}]
});
Ext.create("Ext.grid.Panel", {
renderTo: Ext.getBody(),
width: 400,
height: 500,
store: store,
columns: [{
"dataIndex": "name",
"text": "Name"
}, {
"dataIndex": "floor",
"text": "Floor"
}]
})
}
});