0

我正在使用 ASP.NET 动态数据,我想做的一件事是拥有一个元类,例如:

    public class CopyTermsHolidaysMetadata
    {
        [Required]
        public int SchoolID { get; set; }

        [Required]
        [UIHint("AcademicYear")]
        public int AcademicYear { get; set; }

        [DisplayName("Recipient School")]
        [Required]
        public int DestinationSchoolID { get; set; }
    }

现在,两个字段 SchoolID 和 DestinationSchoolID 是来自“School”表的下拉列表。

是否有任何属性可以用来自动将它们填充为它们的下拉列表?

4

1 回答 1

0

您应该使用FilterUIHintAttribute允许在CopyTermsHolidays实体上替换(或添加新过滤器)默认过滤器的类。

例如:

[Required]
[UIHint("AcademicYear")]
[FilterUIHint("AcademicYearFilter")]
public int AcademicYear { get; set; }

AcademicYearFilter需要位于~\DynamicData\Filters目录 ( AcademicYearFilter.ascx)中的自定义过滤器在哪里。

FilterUIHintAttribute 类的更多信息。

我会鼓起勇气附上我的答案过滤器模板查找算法和一些来自ASP.NET Dynamic Data UNLEASHED
的引用:

与字段模板的查找规则相比,过滤器模板的查找规则比较简单。动态数据仅使用与列关联的 FilterUIHint,并且具有多种列类型的内在知识。如果数据模型中没有指定FilterUIHint,并且该列是外键(表示子实体中多对一或一对一关联的父导航属性的列),布尔值,或枚举,Dynamic Data 分别选择预定义的 FilterUIHint 值、ForeignKey、布尔值或枚举。有了 FilterUIHint 值,Dynamic Data 会尝试在 Web 应用程序项目的 DynamicData\Filters 目录中找到具有匹配名称的用户控件。如果用户控件不存在,则查找过程结束,

在此处输入图像描述

于 2013-04-25T09:49:07.857 回答