4

Asp.net 4.0 gridView 对“排序箭头”的内置支持节省了一些代码。我的所有网格在从数据库返回时都默认排序,因此我应该使用 ASP.NET SortedDescendingHeaderStyle-CssClass 等指示默认排序的列似乎是合乎逻辑的。

ASP.NET 不会神奇地装饰默认排序的列:它无法知道 SQL 指定的顺序。我可以使用正确的 CSS 类以声明方式或编程方式装饰适当的标题单元格......但是当我排序时 ASP.NET 不会为我删除它。所以目前我正在通过遍历标题单元格在第一个“排序”事件中寻找它来去除它。所以我有一些代码我运行了两次,一次是添加箭头,一次是在第一次手动排序时删除它。这很复杂,几乎与 4.0 之前完成整个工作的工作量一样多。

所以......我一定遗漏了一些东西:有没有办法告诉 ASP.NET GridView 它的内容已经以一种避免手动添加然后删除该排序指示器的方式排序?

4

2 回答 2

5

如果您知道您的排序表达式和方向,您可以通过以下方式显式设置:

GridView.Sort(expression, direction);

表达式将是列列表"col1, col2, etc"

于 2011-06-08T20:14:46.763 回答
1

删除使用 AutoGenerateColumn 限制的 GridView 中特定列的排序

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;");
                }                        
            }
        }
    }
}
于 2013-10-08T12:05:04.517 回答