1

我正在使用 ASP.net 动态数据脚手架。我意识到对于像这样的桌子

表 1:EducationLevel (id,levelname,modby,modon)

table2: Course(id,coursename,modby,modon,belongsToEduLevel)

其中belongsToEduLevel 是FK。在这种情况下,动态数据永远不会在网格中显示 levelname,而是显示

运营 | 摩登 | 教育项目

我该如何改变这个?我可以修改生成的选择语句吗?

4

3 回答 3

2

如果我对您的理解正确,您希望显示的列不显示,您希望显示 FK 列而不是文本值?

如果是这样,您只需将 DisplayColumn 应用于 FK 引用的表,然后选择 PK 作为您要显示的列。

即[DisplayColumn("Id")]

Id 是要在 FK 关系和过滤器中显示的列的名称。

于 2009-04-15T12:32:36.083 回答
1

如果您尚未为课程创建自定义类,请创建以下内容:

[ScaffoldTable(true)]
[MetadataType(typeof(CourseMetaData))]
public partial class Course
{

}
[DisplayName("Courses")]
public class CourseMetaData
{
    [DisplayName("Course ID")]
    public object CourseID { get; set; }

    [DisplayName("Course Name")]
    public object CourseName { get; set; }

    [DisplayName("Modified By")]
    public object ModifiedBy { get; set; }

    [DisplayName("Modified By")]
    public object ModifiedBy { get; set; }

    [DisplayName("Modified On")]
    [DisplayFormat(DataFormatString = "{0:MM-dd-yyyy}")]
    public object ModifiedOn { get; set; }

    [DisplayName("Level Name")]
    public object EducationLevelName { get; set; }

}

如果你没有一个教育水平,抓住这个:

[ScaffoldTable(true)]
[DisplayColumn("EducationLevelName")]
[MetadataType(typeof(EducationLevelMetadata))]
public partial class EducationLevel : INotifyPropertyChanging, INotifyPropertyChanged
{

}

[DisplayName("Education Levels")]
public class EducationLevelMetadata
{
    [DisplayName("Education Level ID")]
    public object EducationLevelID { get; set; }

    [DisplayName("Education Level Name")]
    public object EducationLevelName { get; set; }

    [DisplayName("Education Level Modified By")]
    public object EducationLevelModBy { get; set; }

    [DisplayName("Education Level Modified On")]
    [DisplayFormat(DataFormatString = "{0:MM-dd-yyyy}")]
    public object EducationLevelModOn { get; set; }
}
于 2009-04-17T21:25:52.100 回答
0

如果这不是你想要的,你可以覆盖 ToString() 方法,它可以让你显示一个计算值:

[MetadataType(typeof(Message_MD))]
public partial class Message
{
    public override String ToString()
    {
        return MessageID.ToString() + ", " + Subject;
    }
    public partial class Message_MD
    {
        public object MessageID { get; set; }
        public object Subject { get; set; }
        public object Body { get; set; }
        public object SMSBody { get; set; }
    }
}

在这里,我显示了 PK Id 和一些文本

即12,测试消息

希望这会有所帮助:D

于 2009-04-20T07:28:51.027 回答