2009-09-17 162 views
3

我有很多表中有很多列使用動態數據的表。我只想顯示列的一小部分。如何將[ScaffoldColumn(false)]設置爲動態數據的默認值?

當前當動態數據支撐一個表時,它會創建所有列,除非我將[ScaffoldColumn(false)]設置爲false。這可行,但因爲我只想顯示列的一小部分,它會更容易打開它們而不是關閉。

有沒有辦法改變默認行爲,所以一個列沒有腳手架,除非我告訴它?

回答

3

我不知道開箱即用的方法。但是,您可以創建自己的自定義屬性來執行此操作。

這裏有一個關於如何創建一個自定義的一些樣品屬性來控制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

就這一個,我不知道你能到底如何使用自定義提供商,但也許有點做研究將揭示它是一個很好的選擇。

+0

感謝您的回答。如果沒有人用開箱即用的方式來做到這一點,我會放棄這一點。 – 2009-09-18 08:33:34

+0

我很肯定這會起作用,但這對我來說有點複雜。所以對於這個以及其他一些原因,我決定改用.NET MVC。這只是我正在進行的項目的一個更好的匹配。 – 2009-09-22 12:36:20

相關問題