Gridview Control Сортировка Направление - PullRequest
0 голосов
/ 06 октября 2011

Порядок сортировки по умолчанию в элементе управления gridview по возрастанию, а затем по убыванию.Теперь ниже у меня есть код, чтобы изменить это вокруг.Все идет нормально.Но когда я снова нажимаю на другой столбец, он снова устанавливает направление сортировки по возрастанию.Он чередуется по убыванию и возрастанию при каждом нажатии, независимо от того, какой столбец.Теперь я действительно хочу, чтобы первый щелчок по любому столбцу был по убыванию, и если я щелкну по любому столбцу во второй раз (второй раз означает последовательно), он должен быть по возрастанию.Пример: у меня есть 2 столбца, один - зарплата, а другой - возраст.Теперь я нажимаю на зарплату, и первое направление сортировки - по убыванию, а не по умолчанию (это то, что делает код).Теперь, когда я нажимаю на возраст, он переключает направление сортировки на возрастающий, я хочу, чтобы он оставался таким же, когда я перехожу на другой столбец, НО, если я снова нажму на зарплату во второй раз, он должен переключиться на возрастающий (причина былапервый клик).Есть предложения?

Мой код:

public SortDirection GridViewSortDirection
{
    get
    {
        if (ViewState["sortDirection"] == null) 
            ViewState["sortDirection"] = SortDirection.Ascending;
        return (SortDirection)ViewState["sortDirection"];
    }
    set
    {
        ViewState["sortDirection"] = value; 
    }
}
protected void GridView1_OnSorting(object sender, GridViewSortEventArgs e)
{
    if (ViewState["sortDirection"] == null)
    {
        e.SortDirection = SortDirection.Descending;
    }
    else if (GridViewSortDirection == SortDirection.Ascending)
    {
        e.SortDirection = SortDirection.Descending;
    }
    else if (GridViewSortDirection == SortDirection.Descending)
    {
        e.SortDirection = SortDirection.Ascending;
    }

    GridViewSortDirection = e.SortDirection;
}

1 Ответ

0 голосов
/ 06 октября 2011

Попробуйте проверить, чтобы определить, изменилось ли SortExpression по сравнению с ранее установленным SortExpression, и если да, по умолчанию для SortDirection установлено значение Descending.

protected void GridView1_OnSorting(object sender, GridViewSortEventArgs e)
{
    if (e.SortExpression != GridView1.SortExpression)
    {
        e.SortDirection = SortDirection.Descending;
        GridViewSortDirection = e.SortDirection;
    }
    else if (GridViewSortDirection == SortDirection.Ascending)
    {
        e.SortDirection = SortDirection.Descending;
    }
    else if (GridViewSortDirection == SortDirection.Descending)
    {
        e.SortDirection = SortDirection.Ascending;
    }

    GridViewSortDirection = e.SortDirection;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...