Вопрос
Стоит задача вывода пользователю результата выборки. Выборку делаю с помощью esq запросов, помещаю в коллекцию. Далее пытаюсь отрисовать в разделе свой GRID (по аналогии с "datagrid" в basesection) и направить в него коллекцию. Однако созданный грид не появляется. Есть ли примеры/инструкции по работе с данным элементом и вообще с таким кейсом как "вывод данных, полученных в результате esq запросов, на страницу" ?
Ответ
Инструкций по гридам нет, но достаточно много написано в комментариях к атрибутам самого контрола грида, исходный код которого в неcжатом виде лежит тут:
*путь_к_сайту*\Terrasoft.WebApp\Resources\ui\Terrasoft\controls\grid\grid.js
Так же достаточно примеров использования Вы найдете поискав по кодам конфигурации строку «Terrasoft.ViewItemType.GRID».
В качестве примера вот схема, в которой создается небольшой esq запрос, и его результат выводится в гриде:
define("UsrContactType3Page", ["UsrContactType3PageResources", "GeneralDetails"],
function (resources, GeneralDetails) {
return {
entitySchemaName: "Contact",
details: /**SCHEMA_DETAILS*/{}/**SCHEMA_DETAILS*/,
attributes: {
"TestCollection": {
dataValueType: this.Terrasoft.DataValueType.COLLECTION,
value: this.Ext.create("Terrasoft.BaseViewModelCollection")
},
IsGridEmpty: {
dataValueType: this.Terrasoft.DataValueType.BOOLEAN,
value: true
},
},
methods: {
init: function () {
this.callParent(arguments);
},
onEntityInitialized: function () {
this.callParent(arguments);
var esq = this.Ext.create("Terrasoft.EntitySchemaQuery", {
rootSchemaName: "Account"
});
esq.addColumn("Name");
esq.addColumn("Phone");
esq.addColumn("City");
var collection = this.get("TestCollection");
esq.getEntityCollection(function (response) {
var entities = response.collection;
if (entities.getCount() > 0) {
this.set("IsGridEmpty", false);
collection.loadAll(entities);
}
}, this);
}
},
rules: {},
diff: /**SCHEMA_DIFF*/[
{
"operation": "insert",
"name": "TestContainer",
"parentName": "Header",
"propertyName": "items",
"values": {
"itemType": this.Terrasoft.ViewItemType.CONTAINER,
"layout": {"column": 0, "row": 0, "colSpan": 34},
"items": []
}
},
{
"operation": "insert",
"name": "TestDataGrid",
"parentName": "TestContainer",
"propertyName": "items",
"values": {
"itemType": this.Terrasoft.ViewItemType.GRID,
"type": this.Terrasoft.GridType.LISTED,
"collection": {"bindTo": "TestCollection"},
"isEmpty": {"bindTo": "IsGridEmpty"},
"captionsConfig": [{
cols: 10,
name: "Имя"
},
{
cols: 10,
name: "Телефон"
},
{
cols: 4,
name: "Город"
}
],
"columnsConfig": [
{
"cols": 10,
"key": [
{
"name": {"bindTo": "Name"},
"caption": "Name"
}
]
},
{
"cols": 10,
"key": [
{
"name": {"bindTo": "Phone"},
"caption": "Phone"
}
]
},
{
"cols": 4,
"key": [
{
"name": {"bindTo": "City"},
"caption": "City"
}
]
}
]
}
}
]/**SCHEMA_DIFF*/,
userCode: {}
};
}
);Результат:
![]()