Изменить Выберите операторы, созданные для создания сетки в динамических данных? - PullRequest
1 голос
/ 14 апреля 2009

Я использую ASP.net Dynamic Data леса. Я понимаю, что для стола, как

table1: EducationLevel (id, имя уровня, modby, modon)

table2: курс (id, имя курсора, modby, modon, принадлежит ToEduLevel)

где принадлежит ToEduLevel - это FK. В этом случае динамические данные никогда не показывают имя уровня в сетке, вместо этого они показывают

Операции | Модон | EducationPrograms

Как мне это изменить ?? Могу ли я изменить сгенерированный оператор выбора.

Ответы [ 3 ]

2 голосов
/ 15 апреля 2009

Если я правильно понимаю, что столбец, который вы хотите отобразить, не отображается, вы хотите, чтобы столбец FK отображался не как текстовое значение?

Если это так, все, что вам нужно сделать, это применить DisplayColumn к таблице, на которую ссылается FK, и добавить PK в качестве столбца, который вы хотите отобразить.

т.е. [DisplayColumn ("Id")]

Id - имя столбца для отображения в связях FK и фильтрах.

1 голос
/ 18 апреля 2009

Если у вас еще нет настроенного класса для курсов, создайте следующее:

[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; }
}
0 голосов
/ 20 апреля 2009

И если это не совсем то, что вам нужно, вы можете переопределить метод 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

...