Asp.NET 4.0 GridView Направление сортировки по умолчанию и выражение - PullRequest
4 голосов
/ 08 июня 2011

Встроенная поддержка Asp.net 4.0 gridView для "сортировки стрелок" сохраняет некоторый код.Все мои сетки сортируются по умолчанию, когда они возвращаются из базы данных, поэтому было бы логично, чтобы я указывал, по какому столбцу default отсортирован, используя ASP.NET SortedDescendingHeaderStyle-CssClass и т. Д.

ASP.NET волшебным образом не декорирует отсортированный по умолчанию столбец: он не может знать, какой порядок указывает SQL.Я могу декларативно или программно декорировать соответствующую ячейку заголовка с помощью правильного класса CSS ... но тогда ASP.NET не удалит его для меня при сортировке.Так что в настоящее время я удаляю это, перебирая ячейки заголовка, ища его в первом событии «Сортировка».Итак, у меня есть немного кода, который я запускаю дважды: один раз, чтобы добавить стрелку, и один раз при первой сортировке вручную, чтобы удалить ее.Это сложно, почти столько же, сколько вся работа выполнялась до 4.0.

Итак ... Я должен что-то упустить: есть ли способ сообщить ASP.NET GridView, что его содержимое уже отсортировано вспособ избежать ручного добавления, а затем удалить индикатор сортировки?

Ответы [ 2 ]

5 голосов
/ 09 июня 2011

Если вы знаете свое выражение и направление сортировки. Вы можете задать явно:

GridView.Sort(expression, direction);

выражение будет список столбцов "col1, col2, etc"

1 голос
/ 08 октября 2013

Удаление сортировки для определенного столбца в GridView, который ограничен с помощью AutoGenerateColumn

protected void GridView_PreRender(object sender, System.EventArgs e) 
{
    if (GridView.AllowSorting)
    {
        foreach (TableCell tc in GridView.HeaderRow.Cells)
        {
            if (tc.HasControls())
            {
                LinkButton lb = (LinkButton)tc.Controls[0];
                if (lb != null && lb.Text.Equals("ColumnName"))
                {                            
                    tc.Attributes.Add("onclick", "return false;");
                }                        
            }
        }
    }
}
...