Публикация

Вывод результата EntitySchemaQuery в GRID

Вопрос

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

Результат:

Изображение удалено.

Нравится

Поделиться

0 комментариев
Показать все комментарии