如何将[ScaffoldColumn(false)]设置为动态数据的默认值?

3

我有许多带有大量列的表格,正在使用动态数据。我只想显示其中的一小部分列。

目前,当动态数据搭建表格时,它会创建所有列,除非我将[ScaffoldColumn(false)]设置为false。这种方法虽然可行,但由于我只想显示少数列,因此打开所需列会更容易。

是否有一种方法可以更改默认行为,使得除非我告诉它,否则不会搭建某一列?

1个回答

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

对于这个问题,我不确定如何使用自定义提供程序来实现,但也许通过一些研究可以发现它是一个不错的选择。


谢谢你的回答。如果没有人提供一个开箱即用的方法,我会尝试这个方法。 - Richard Garside
我相信这个方法可以行得通,但对我来说有点复杂。因此,出于这个原因和其他一些原因,我决定改用.NET MVC。它更适合我正在处理的项目。 - Richard Garside

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接