Laden...

GridView SortDirection ist immer "Ascending"

Erstellt von MrChangeLog vor 6 Jahren Letzter Beitrag vor 6 Jahren 990 Views
MrChangeLog Themenstarter:in
121 Beiträge seit 2016
vor 6 Jahren
GridView SortDirection ist immer "Ascending"

Ich habe ein gridView, dass ich (indirekt) mit Daten aus einer MSSQL-Datenbank befülle:
('daten' ist der Name des GridViews; die DataSource (inkl. Select-Command) wird im aspx-File definiert)


if (!IsPostBack)
{
    datasource.ConnectionString = //Connectionstring
    DataView view = new DataView();
    view = datasource.Select(DataSourceSelectArguments.Empty) as DataView;
    daten.DataSource = view;
    daten.DataBind();
    ViewState["dtbl"] = view.ToTable();
    setTablePreferences();
}

Den ViewState rufe ich in der Sorting-Methode wieder auf:


protected void daten_Sorting(object sender, GridViewSortEventArgs e)
{
    DataTable dataTable = ViewState["dtbl"] as DataTable;

    if (dataTable != null)
    {
        DataView dataView = new DataView(dataTable);

        if (e.SortDirection == SortDirection.Descending)
        {
            dataView.Sort = e.SortExpression + " ASC";
        }
        else
        {
            dataView.Sort = e.SortExpression + " DESC";
        }
        daten.DataSource = dataView;
        daten.DataBind();
        ViewState["dtbl"] = dataView.ToTable();
    }
}

Das Problem ist nun: e.SortDirection ist immer 'Ascending'. Ich hatte gehofft, dass im ViewState die SortDirection korrekt übergeben wird, aber auch da ist sie immer 'Ascending', auch wenn sie in der dataview (die ich ja als DataTable in den ViewState speichere) 'Descending' ist.
Wie kann ich das Problem lösen?
(gegoogelt und im Forum gesucht hab ich schon, aber nichts gescheites gefunden)

MrChangeLog Themenstarter:in
121 Beiträge seit 2016
vor 6 Jahren

Zusatz: der erste Codteil wird in der Page-Load-Methode aufgerufen.