2017-06-08 2 views
0

Ich habe eine Gridview in einer ASP.NET Web Forms App und ich musste einen Weg hinzufügen, um die Zeilen basierend auf 2 Spalten zu sortieren. Ich habe einen Weg gefunden, dies mit DataView zu tun. Also von meiner ursprünglichen Gridview ich eine Datatable bin die Schaffung und ich dann:Sortieren von Datenansicht aus Datentabelle mit ausgeblendeten Spalten in ASP.NET

DataView dv = new DataView(dt); 
dv.Sort = "Column_1, Column_2"; 
gridView.DataSource = dv; 
gridView.DataBind(); 

Jetzt kann ich die Dataview sortieren und danach kann ich die Dataview auf die Gridview als Datasource hinzufügen. Das funktioniert großartig, außer dass mein ursprüngliches GridView einige Spalten hat, die auf visible = false gesetzt sind. Nachdem ich diese Sortierung durchgeführt habe, werden die Daten aus den versteckten Spalten gelöscht. Hat das schon mal jemand getroffen? Tritt dies beim Erstellen der DataView aus der DataTable oder beim Sortieren ein? Was kann ich tun, um die Werte aus den ausgeblendeten Spalten beizubehalten?

Danke!

+0

Ich habe es geschafft, dies zu lösen, indem ich zuerst die GridView-Spalten sichtbar mache und dann alle anderen Sachen, die für die Sortierung benötigt werden, und am Ende setze ich die GridView-Spalten wieder auf nicht sichtbar. Das funktioniert, aber ich war neugierig darauf, warum das passiert. Ich konnte keine verwandten Informationen online finden. Vielleicht könnte jemand mit mehr Erfahrung etwas Licht geben. Vielen Dank ! – Cosmos24Magic

Antwort

0

Vor dem Sortieren Sie die Spalten festlegen müssen visible=false und nach eingestellt Sortierung visible=true Code unten besser für die Sortierung funktioniert:

DataView dv = new DataView(dt); 
dv.Sort = "Column_1, Column_2"; 
gridView.DataSource = dv; 
gridView.DataBind(); 

Dies funktioniert, da Sie nicht in Page_LoadIsPostBack überprüft haben.

Verwandte Themen