[ScaffoldColumn(false)]を動的データのデフォルトに設定するにはどうすればよいですか?
-
10-07-2019 - |
質問
動的データを使用している列がたくさんあるテーブルがたくさんあります。列の小さなサブセットのみを表示したい。
現在、[ScaffoldColumn(false)]をfalseに設定しない限り、Dynamic Dataがテーブルをスキャフォールディングすると、すべての列が作成されます。これは機能しますが、列の小さなサブセットのみを表示したいので、列をオフにするよりもオンにする方が簡単です。
デフォルトの動作を変更する方法はありますか?そうしないと、列は足場になりませんか?
解決
これをすぐに実行する方法がわかりません。ただし、これを行うために独自のカスタム属性を作成できます。
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に追加し、IAutoFieldGeneratorのGenerateFieldsメソッドのコードでカスタム属性とコードを適宜検索します。属性がそれ以外の場合は、デフォルトのDD方法を使用してください。
独自のメタデータプロバイダーを使用してこれを行うこともできます。
http://mattberseth.com/blog/2008/08/dynamic_data_and_custom_metada.html
これについては、カスタムプロバイダーを使用してどのように実行できるか正確にはわかりませんが、おそらく少しの調査でそれが良いオプションであることが明らかになります。