Как для 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 можно ли добавить колонку?
Нравится
Метод addProfileColumns добавляет колонку непосредственно в запрос, то есть вы получите в запросе кроме отображаемых колонок еще дополнительные, которые отображаться не будут. Для того, чтобы они отображались нужно еще поменять конфиги отображения. Находятся они в Profile, а т.к. отображение может быть как плиточным (tiledConfig), так и списочным (listedConfig), то также нужно смотреть какую именно конфигурацию менять.
Словить Profile можно переопределив метод initProfile. В нем снчала нужно обязательно сначал вызвать this.callParent(arguments), в следствии чего будет получен исодный Profile. А после этого взять var profile = this.get("Profile"), распарсить и динамически изменить listedConfig и tiledConfig для изменения конфигуарации колонок грида. Распарсить придется, т.к. listedConfig и tiledConfig приходят в виде строки. Нужно также учитывать размеры соседних колонок и уменьшать и перемещать их, чтобы было куда вставить новую.
Подправив Profile и переорпеделив метод addProfileColumns как у вас - вы получите динамическую подгрузку и отображение колонки.
А почему вы не хотите переопределить обьект файла, добавив текстовое поле с описанием, которое будет заполняться с помощью встроенного в обьект бизнес-процеса после сохранения записи?
В этом случае отображение колонок будет настраиваться через пункт меню "Настроить колонки", что проще да и удобнее.