更改为在动态数据中生成gridview而生成的Select语句?

时间:2009-04-13 20:39:49

标签: asp.net linq-to-sql dynamic-data

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

这样的表

table1:EducationLevel(id,levelname,modby,modon)

table2:课程(id,coursename,modby,modon,belongsToEduLevel)

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

操作|莫顿| EducationPrograms

我该怎么改变?我可以修改生成的select语句吗?

3 个答案:

答案 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