"Скрытые" колонки при табличном выводе - возможно ли?
Всем доброго времени суток.
Некоторое время назад нашел я на маркетплейсе примочку, которая при просмотре какой-то конкретной таблицы (уже не помню какой, да и не особо важно) подкрашивает строки этой таблицы в зависимости от значения в какой-то из выводимых колонок. Нашел, посмотрел исходники, подумал немножко - и по образу и подобию сделал у себя аналогичные вещи еще в двух местах. Пользователям понравилось. И все бы хорошо, если бы не одно "но": финт, положенный в основу всего этого, работает только при одном важном условии - колонка, в зависимости от которой подкрашиваются строки таблицы, должна выводиться в таблице в явном виде. Если же соответствующей колонки нет - то и подкраски не будет. А ведь колонки может и не быть, ибо у пользователя есть возможность самостоятельно отредактировать внешний вид таблицы. (Кстати: та примочка из маркетплейса, с которой все началось, этот момент не отслеживает вообще никак, что может привести к сбоям. Ну да ладно.)
Соответственно, вопрос: можно ли как-то указать системе, что значение какого-то поля из базы данных нужно передавать на клиентское рабочее место всегда, независимо от того, используется ли оно при выводе таблицы или нет?
Или, как альтернатива, можно ли при обработке очередной строки в методе prepareResponseCollectionItem() запросить из базы данных сервера дополнительную информацию, соответствующую обрабатываемой строке?
Нравится
Можно. Для этого в коде детали (Detail) или коде раздела (Section) добавляем метод getGridDataColumns
getGridDataColumns: function() { var baseGridDataColumns = this.callParent(arguments); var gridDataColumns = { "UsrDateEnd": {path: "UsrDateEnd"}, }; return Ext.apply(baseGridDataColumns, gridDataColumns); },
Где, UsrDateEnd поле, которое нужно загружать в любом случае, даже если оно скрыто.
Можно. Для этого в коде детали (Detail) или коде раздела (Section) добавляем метод getGridDataColumns
getGridDataColumns: function() { var baseGridDataColumns = this.callParent(arguments); var gridDataColumns = { "UsrDateEnd": {path: "UsrDateEnd"}, }; return Ext.apply(baseGridDataColumns, gridDataColumns); },
Где, UsrDateEnd поле, которое нужно загружать в любом случае, даже если оно скрыто.
Трефилов Павел Сергеевич,
Великолепно! Именно то, что нужно. Спасибо огромное.