Вопрос
Стоит задача вывода пользователю результата выборки. Выборку делаю с помощью 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: {} }; } );
Результат: