Доброго дня
В мене винникла проблема в роботі з Terrasoft.Grid
Я створив свій окремий модуль, в ньому описав сві грід.
Заповнюю його так
var esq = this.Ext.create("Terrasoft.EntitySchemaQuery", {
rootSchemaName: "Product"
});
esq.addColumn("Id");
esq.addColumn("Name");
esq.addColumn("UsrFloor");
esq.getEntityCollection(function(response) {
var newCollection = Ext.create("Terrasoft.Collection");
var data = response.collection.collection.items;
Terrasoft.each(data, function (item, key) {
var model = Ext.create("Terrasoft.BaseViewModel", {
rowConfig: {
Id: {
columnPath: "Id",
dataValueType: Terrasoft.DataValueType.GUID
},
Name: {
columnPath: "Name",
dataValueType: Terrasoft.DataValueType.TEXT
},
UsrFloor: {
columnPath: "UsrFloor",
dataValueType: Terrasoft.DataValueType.INTEGER
}
},
values: {
Id: item.values.Id,
Name: item.values.Name,
UsrFloor: item.values.UsrFloor
}
});
newCollection.add(item.values.Id, item);
}, this);
var gridData = scope.get("gridData");
gridData.loadAll(newCollection);
При кліку на запис у мене пише що елемент з ключом не знайдений(img1.png)
Нравится
А в описании грида есть такой пункт?
[javascript]
"operation": "insert",
"name": "DataGrid",
...
"values": {
...
"primaryColumnName": "Id"
...
}
[/javascript]
Дякую
у мене чомусь стояв "Name"
В мене є такий описаний грід, я хочу зробити його у варіанті tiled
[javascript]
{
className: 'Terrasoft.Container',
id: 'gridArea',
selectors: {
wrapEl: '#gridArea'
},
classes: {
wrapClassName: ['container-spacing']
},
items: [
{
className: 'Terrasoft.Grid',
type: 'tiled',
primaryColumnName: 'Id',
activeRow: {
bindTo: 'activeRowId'
},
captionsConfig: [
{
cols: 2,
name: 'Етаж'
},
{
cols: 12,
name: 'Название'
}
],
columnsConfig: [
[
{
row: 0,
cols: 2,
key: [
{
name: {
bindTo: 'UsrFloor'
},
type: 'title'
}
]
},
{
row: 1,
cols: 12,
key: [
{
name: {
bindTo: 'Name'
},
type: 'title'
}
]
}
]
],
isEmpty: {
bindTo: 'gridEmpty'
},
collection: {
bindTo: 'gridData'
},
activeRowAction: {
bindTo: 'onActiveRowSelect'
},
activeRowActions: [
{
className: 'Terrasoft.Button',
style: Terrasoft.controls.ButtonEnums.style.BLUE,
caption: 'Отркыть',
tag: 'View'
},
{
className: 'Terrasoft.Button',
style: Terrasoft.controls.ButtonEnums.style.BLUE,
caption: '5',
tag: 'Edit'
},
{
className: 'Terrasoft.Button',
style: Terrasoft.controls.ButtonEnums.style.GREY,
caption: '6',
tag: 'Delete'
}
]
}
]
}
[/javascript]
Але в мене підписи колонок так і не проставляються, самі значення(img2)
я так понимаю надо прописать tiledConfig. Что-то наподобие:
[javascript]
"tiledConfig": {
"name": "DataGridTiledConfig",
"grid": {
"columns": 24,
"rows": 1
},
"items": [
{
"name": "UsrFloorGridColumn",
"bindTo": "UsrFloor",
"caption": "Этаж",
"captionConfig": { "visible": true },
"position": {
"row": 1,
"column": 1,
"colSpan": 12
},
"type": "text"
},
{
"name": "NameGridColumn",
"bindTo": "Name",
"caption": "Название",
"captionConfig": { "visible": true },
"position": {
"row": 1,
"column": 12,
"colSpan": 12
},
"type": "title"
}]
}
[/javascript]
Не уверен однако насчёт colspan. Вроде где-то слышал, что обязательно должно быть 24 заполненные яйчейки
upd. немного подправил конфиг на основе того, что возвращает GridSettingsChanged при конфигурации грида пользователем