我正在使用ASP.net动态数据脚手架。我意识到对于像
这样的表table1:EducationLevel(id,levelname,modby,modon)
table2:课程(id,coursename,modby,modon,belongsToEduLevel)
其中belongsToEduLevel是FK。在这种情况下,动态数据从不显示网格中的levelname,而是显示
操作|莫顿| EducationPrograms
我该怎么改变?我可以修改生成的select语句吗?
答案 0 :(得分:2)
如果我理解你要显示的列没有显示,你想要显示FK列而不是文本值吗?
如果需要,您只需将DisplayColumn应用于FK引用的表,并将PK作为要显示的列进行选择。
即。 [DisplayColumn(“Id”)]
Id是要在FK关系和过滤器中显示的列的名称。
答案 1 :(得分: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; }
}
答案 2 :(得分: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