Добавить колонку в DataGrid

Как для DataGrid к FileDetail добавить колонку для показа информации по описанию файла?

 

addProfileColumns: function(esq) {

            var profileColumns = this.getProfileColumns();

                //добавляем новую

                profileColumns.Notes = {

                    aggregationType: undefined,

                    caption: "Описание",

                    dataValueType: Terrasoft.DataValueType.TEXT,

                    path: "Notes",

                    subFilters: undefined,

                    type: "text"

                };

                //а это взято из метода addProfileColumns из GridUtilitiesV2

                Terrasoft.each(profileColumns, function(column, columnName) {

                            if (!esq.columns.contains(columnName)) {

                                if (column.aggregationType) {

                                    this.addProfileAggregationColumn(esq, column, columnName);

                                } else {

                                    esq.addColumn(columnName);

                                    }

                                }

                }, this);

        },

В getProfileColumns можно ли добавить колонку?

 

Нравится

2 комментария

Метод addProfileColumns добавляет колонку непосредственно в запрос, то есть вы получите в запросе кроме отображаемых колонок еще дополнительные, которые отображаться не будут. Для того, чтобы они отображались нужно еще поменять конфиги отображения. Находятся они в Profile, а т.к. отображение может быть как плиточным (tiledConfig), так и списочным (listedConfig), то также нужно смотреть какую именно конфигурацию менять.

Словить Profile можно переопределив метод initProfile. В нем снчала нужно обязательно сначал вызвать this.callParent(arguments), в следствии чего будет получен исодный Profile. А после этого взять var profile = this.get("Profile"), распарсить и динамически изменить listedConfig и tiledConfig для изменения конфигуарации колонок грида. Распарсить придется, т.к. listedConfig и tiledConfig приходят в виде строки. Нужно также учитывать размеры соседних колонок и уменьшать и перемещать их, чтобы было куда вставить новую.

Подправив Profile и переорпеделив метод addProfileColumns как у вас - вы получите динамическую подгрузку и отображение колонки.

А почему вы не хотите переопределить обьект файла, добавив текстовое  поле с описанием, которое будет заполняться с помощью встроенного в обьект бизнес-процеса после сохранения записи?

В этом случае отображение колонок будет настраиваться через пункт меню "Настроить колонки", что проще да и удобнее.

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