Как установить [ScaffoldColumn (false)] в качестве значения по умолчанию для динамических данных? - PullRequest
3 голосов
/ 17 сентября 2009

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

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

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

1 Ответ

3 голосов
/ 17 сентября 2009

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

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

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

...