Hallo,
ich habe ein GridView-Control, welches ich mit einer eigenen Liste binde.
Diese wird korrekt angezeigt.
Das datatable hat die Columns "Typ", "Name" und "Quelle".
Diese sind jeweils mit einem BoundField im GridView gebunden.
Jetzt habe ich im GridView die Eigenschaft AllowSorting="True" gesetzt.
Bei den Boundfields habe ich im SortExpression jeweils "Typ", "Name" und "Quelle" eingetragen.
Wenn ich aber nun auf den Griedview Header eine Spalte zum Sortirren anklicke, dann passiert einfach garnichts. Die Liste wird nicht sortiert.
Fehlt mir noch was?
die suche hätte dir die lösung gebracht
DataView view = DataSet.Tables[0].DefaultView
view.Sort = "Stadt";
Heißt das also, dass ich für mein DataTable Objekt, welches an das Gridview gebunden ist eine eigene Sortierfunktion schreiben und diese im Sorting-Event ausführen müsste?
also,
ich kann nun teilweise sortieren:
protected void GridView1_Sorting(Object sender, GridViewSortEventArgs e)
{
String s = e.SortDirection.ToString();
if (s.ToUpper() == "DESCENDING")
{
s = "DESC";
}
else
{
s = "ASC";
}
dc.DefaultView.Sort = e.SortExpression + " " + s;
GridView1.DataSource = dc;
GridView1.DataBind();
}
Soweit so gut, aber ich bekomme als SortDirection immer nur "Ascending" zurück. Liefert mir das Gridview nicht abwechselnd Ascending und Descending zurück?
Nein, dazu ist es zu dumm. Den Zustand musst du dir selbst merken.
ok, ich habe mir das ganze in der session gemerkt. Jetzt läuft es. Danke euch.
Nen Tick sicherer ist übrigens z.B. ein unsichtbares Label, das hat die Info auch dann noch, wenn die Session abgelaufen ist. Falls du das nicht sowieso abfängst.