Как установить [ScaffoldColumn (false)] в качестве значения по умолчанию для динамических данных?
-
10-07-2019 - |
Вопрос
У меня есть несколько таблиц с большим количеством столбцов, с которыми я использую динамические данные. Я хочу показать только небольшое подмножество столбцов.
В настоящее время, когда Dynamic Data создает таблицу, он создает все столбцы, если я не установил для [ScaffoldColumn (false)] значение false. Это работает, но так как я хочу отображать только небольшое подмножество столбцов, было бы легче включить их, а не выключать.
Есть ли способ изменить поведение по умолчанию, чтобы столбец не создавался в скаффолде, если я не сообщу об этом?
Решение
Я не знаю, как сделать это из коробки. Однако вы можете создать свой собственный атрибут для этого.
Вот несколько примеров того, как создать пользовательский атрибут для управления работой DD:
http: //csharpbits.notaclue .net / 2009/04 / hiding-foreign-key-column-globally-in.html - Пример создания атрибута для скрытия столбца внешнего ключа для всех таблиц.
http: //csharpbits.notaclue .net / 2008/10 / dynamic-data-hiding-columns-in-selected.html - образец другого атрибута для скрытия столбца, но применяемый на уровне страницы.
Я вижу первый вариант, где он определен на уровне таблицы, возможно, ваш лучший выбор. Вы можете создать свой собственный атрибут скажем HideFieldsByDefault и установить его в значение true.
Затем вы добавили бы свои поля, которые вы хотите отобразить с помощью ScaffoldColumn, в true, а в коде для метода GenerateFields объекта IAutoFieldGenerator вы бы тогда соответствующим образом искали свой пользовательский атрибут и код, а если бы ваш атрибут не был их, тогда вы бы сделали это. просто используйте способ DD по умолчанию.
Вы также можете сделать это с вашим собственным поставщиком метаданных:
http://mattberseth.com/blog/2008/08/dynamic_data_and_custom_metada.html р>
В этом вопросе я точно не знаю, как вы могли бы сделать это с обычным поставщиком, но, возможно, небольшое исследование покажет, что это хороший вариант.