Wie haben Sie Spalten in GridView mit verschiedenen Datenquellen?

9

Ich versuche, eine GridView dynamisch zu erstellen. Eine der Spalten ist der Benutzer, der die Zeile erstellt hat.

%Vor%

Ich habe das GridView in der BuildGrid-Funktion in der Klasse job_piece erstellt.

%Vor%

Die 3 Spalten, die zur Zeit angezeigt werden, stammen alle aus job_piece. Da der Benutzer nicht zu dieser Klasse gehört, habe ich versucht, die Spalte außerhalb dieser Funktion zu erstellen.

Die Spalte zeigt die Kopfzeile an, aber die Zeilen sind leer. Der Benutzername stammt aus der Klasse JobDebrief . Aber da ich GridView an die Teile gebunden habe, findet db.DataSource = jb.Pieces; die Information nicht. Ist es möglich, die Benutzerspalte auf eine andere DataSource zu setzen?

    
user123456789 17.07.2015, 10:36
quelle

4 Antworten

4

Die einfachste Antwort wird sein Erstellen Sie eine neue Datentabelle und weisen Sie alle darin enthaltenen Werte zu

%Vor%     
VISHMAY 24.07.2015 04:27
quelle
0

Falls Sie eine Liste (aufzählbar) haben, können Sie beitreten Basiertes Szenario. Wenn eins zu eins dann beitreten oder sonst groupjoin.

Dies erzeugt eine einzelne Datenquellenliste und ist leicht zu binden oder Daten vom Datenbankserver abzurufen kann dann auch Join auf dem Datenbankserver verwenden.

Technisch glaube ich nicht, dass wir mehrere Datenquellen an ein einfaches Raster binden können (außer Baumansicht und übergeordnete Kindansicht). Raster zeigt die Daten im Zeilenformat an, also zum Erzeugen des einzelnen einzelnen Einzelobjekts oder der Entität in der Sammlung. Wenn Sie zwei Datenquellen angeben, muss eine Beziehung zwischen beiden bestehen. Für Beispiel: - hat zuerst eine 10 Reihe und Sekunde hat eine 20 dann, wie kann Reihengitter angezeigt werden ?. Also für alle diese muss Beziehung verwenden und einzelne Ansicht erstellen. das kann im Raster angezeigt werden.

    
Rohit Harkhani 21.07.2015 18:15
quelle
0

Ich denke, Ihre beste Methode ist die Verwendung von Linq. Verknüpfen Sie Ihre Objekte mit einem gemeinsamen Feld, z. B. einem ID-Feld. Jetzt, da die Daten miteinander verknüpft sind, können Sie die Benutzerspalte anzeigen, die sich jetzt in Ihrem Objekt befindet.

Erstellen Sie Ihr Raster.

%Vor%

Linq-Code beim Laden der Seite oder wenn Sie Ihr Raster laden möchten

%Vor%

Wenn Sie die Objekte aus irgendeinem Grund nicht kombinieren können, sollten Sie die RowDataBound-Methode Ihres Rasters verwenden. Wenn Sie Ihre Zeile erstellen, überprüfen Sie die ID in Ihrem Raster, wenn sie der ID der gewünschten Spalte entspricht, und legen Sie dann die Spalte gleich dem Benutzer fest.

%Vor%     
wolfeh 22.07.2015 18:11
quelle
0

Sie können eine Wrapperklasse zum Umbrechen anderer Klassen erstellen, für die Daten an das Raster gebunden werden müssen. Und binden Sie dann das Raster an diese Wrapper-Klasse.

Die Wrapperklasse enthält die beiden anderen Klassen als untergeordnete Elemente und stellt die Datenelemente aus beiden Klassen zur Verfügung, die Sie an das Gitter binden müssen.

    
ItsZeus 23.07.2015 11:08
quelle