我正在使用 ASP.net 动态数据脚手架。我意识到对于像这样的桌子
表 1:EducationLevel (id,levelname,modby,modon)
table2: Course(id,coursename,modby,modon,belongsToEduLevel)
其中belongsToEduLevel 是FK。在这种情况下,动态数据永远不会在网格中显示 levelname,而是显示
运营 | 摩登 | 教育项目
我该如何改变这个?我可以修改生成的选择语句吗?
我正在使用 ASP.net 动态数据脚手架。我意识到对于像这样的桌子
表 1:EducationLevel (id,levelname,modby,modon)
table2: Course(id,coursename,modby,modon,belongsToEduLevel)
其中belongsToEduLevel 是FK。在这种情况下,动态数据永远不会在网格中显示 levelname,而是显示
运营 | 摩登 | 教育项目
我该如何改变这个?我可以修改生成的选择语句吗?
如果我对您的理解正确,您希望显示的列不显示,您希望显示 FK 列而不是文本值?
如果是这样,您只需将 DisplayColumn 应用于 FK 引用的表,然后选择 PK 作为您要显示的列。
即[DisplayColumn("Id")]
Id 是要在 FK 关系和过滤器中显示的列的名称。
如果您尚未为课程创建自定义类,请创建以下内容:
[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; }
}
如果这不是你想要的,你可以覆盖 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