Bindung linq Abfrage-Ergebnis zu gridview
Ich finde es schwer zu binden, die linq-Abfrage-Ergebnisse, um ein gridview-Steuerelement auf meinem asp.net Seite. In den wichtigsten Linq-Abfrage, bekomme ich alle Benutzer aus einer Tabelle, die den Kriterien entspricht, die von einer Spalte, die überprüft "Ausgefüllte Formular" -
using (COLA_AccreditationEntities4 eFactory = new COLA_AccreditationEntities4())
{
var evaluations = eFactory.Symposium_Evaluation.Where(a =>
(!a.Completed.HasValue ||
a.Completed.Value == 0) && a.Active && a.UserID >= 2063).ToList();
Dann im code mache ich eine foreach-Schleife alle zu erhalten, die die Benutzer-id aus der anderen Tabelle übereinstimmt, die die Benutzer-id in der vorherigen Tabelle -
foreach (var eval in evaluations)
{
var user = eFactory.SYMPOSIUM_Users.Where(a => a.UserID == eval.UserID.Value
&& a.Active.Value && a.UserRole == 1).FirstOrDefault();
if (user != null && !users.Contains(user.UserID))
{
string name = user.FirstName + " " + user.LastName;
string email = user.Email;
}
}
Alles, was ich wollte, zu tun ist, um dem Benutzer zu zeigen.Vorname + user.lastname " + user.E-Mail auf dem Bildschirm. Ich verwendet gridview-Steuerelement zu binden, aber nicht immer die gewünschten Ergebnisse.
Irgendwelche Gedanken auf, wie Sie diese erreichen ?
Können Sie zeigen, wie Sie binden Sie das GridView? Bitte zeigen Sie die vollständige Page_Load-eventhandler.
Frexner ich die obige Methode in ein click-Ereignis, das nicht in der Page_Load-Methode.
Was ist der return-Typ der folgenden Abfrage: eFactory.SYMPOSIUM_Users.Wo(ein => ein.UserID = = "eval".Benutzer-id.Wert && ein.Aktiv.Wert && ein.UserRole == 1) wenn ich Recht habe sollte es ein IEnumerable von Ihrem Typ. Wenn das stimmt, sollten Sie in der Lage sein, es zu Binden nur durch Zuweisung an die DataSource des grid.
InformationsquelleAutor Ron | 2012-10-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
sollten Sie in der Lage sein, um eine Bindung zu Ihrem Netz direkt aus der Abfrage:
`var Benutzer = eFactory.SYMPOSIUM_Users.Wo(ein => ein.UserID = = "eval".Benutzer-id.Wert && ein.Aktiv.Wert && ein.UserRole == 1);
diese."mygrid".DataSource = Benutzer;
Ich würde vorschlagen, dass Sie einen Blick auf die asp.net web-site für tutorials. Viele gute Inhalte gibt.
Update:
Vielleicht Ihre beste Lösung ist, erstellen Sie einen anonymen Typ von join auf deinen zwei Tabellen, die auf diese Weise Ihr nicht immer wieder Abfragen, Ihre Daten zu speichern, und Ihre databinding einfacher wird.
Nun in Ihrer grid-Reihe-Vorlage können Sie:
Siehe meine updates.
InformationsquelleAutor Jay
Definieren Sie eine Liste von Benutzer-Typ
Ändern Sie Ihre zweite code-block wie unten
Ändern Sie Ihre verbindliche code innerhalb gridview als
Und schließlich binden Sie in Ihrem raster mit der Liste der Benutzer
InformationsquelleAutor Tariqulazam