2009-04-13 3 views
1

Ich benutze ASP.net Dynamic Data Scaffolding. Ich weiß, dass für einen Tisch wieChange Select-Anweisungen, die zum Generieren von Gridview in Dynamic Data generiert wurden?

tabelle1: EducationLevel (id, levelname, modby, Modon)

table2: Kurs (id, course, modby, Modon, belongsToEduLevel)

wo belongsToEduLevel ist der FK . In diesem Fall werden die dynamischen Daten nie als Ebenenname im Raster angezeigt, sondern als

Operationen | Modon | EducationPrograms

Wie ändere ich das ?? Kann ich die generierte SELECT-Anweisung ändern?

Antwort

2

Wenn ich Sie richtig verstehe, dass die Spalte, die angezeigt werden soll, nicht angezeigt wird, soll die FK-Spalte nicht den Textwert anzeigen?

Wenn dies der Fall ist, müssen Sie die DisplayColumn nur auf die Tabelle anwenden, auf die der FK verweist, und den PK als Spalte verwenden, die angezeigt werden soll.

d.h. [DisplayColumn ("ID")]

Id ist der Name der Spalte in FK-Beziehungen und Filter anzuzeigen.

+0

mich lassen, dass etwas ausprobieren – Perpetualcoder

1

Wenn Sie keine Klasse noch für Kurse erstellt angepasst haben, erstellen Sie wie folgt vor:

[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; } 

} 

Und wenn Sie noch kein Konto haben für Bildungsniveau, das greifen ein:

[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

Und wenn das nicht alles ist, was Sie wollen, können Sie die ToString() - Methode überschreiben, mit der Sie einen berechneten Wert anzeigen lassen können:

[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; } 
    } 
} 

Hier habe ich die PK Id haben und etwas Text gezeigt

das heißt 12, Testnachricht

hoffe, das hilft: D