Как установить [ScaffoldColumn(false)] по умолчанию для динамических данных?

У меня есть несколько таблиц с большим количеством столбцов, с которыми я использую динамические данные. Я только хочу показать небольшое подмножество столбцов.

В настоящее время, когда Dynamic Data создает таблицу, он создает все столбцы, если я не установил для [ScaffoldColumn(false)] значение false. Это работает, но так как я хочу отображать только небольшое подмножество столбцов, было бы легче включить их, а не выключать.

Есть ли способ изменить поведение по умолчанию, чтобы столбец не создавался в скаффолде, если я не скажу это?

1 ответ

Решение

Я не знаю, как сделать это из коробки. Тем не менее, вы можете создать свой собственный атрибут для этого.

Вот несколько примеров того, как создать пользовательский атрибут для управления работой 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

На этом я не уверен, как именно вы могли бы сделать это с обычным поставщиком, но, возможно, небольшое исследование покажет, что это хороший вариант.

Другие вопросы по тегам