Asp.net 4.0 gridView内置支持“排序箭头”保存了一些代码。默认情况下,当我们从数据库返回时,我的所有网格都会被排序,因此我应该通过使用ASP.NET SortedDescendingHeaderStyle-CssClass等来指示哪个列默认已排序。 / p>
ASP.NET没有神奇地修饰默认排序列:它无法知道SQL指定的顺序。我可以使用正确的CSS类以声明方式或编程方式装饰相应的标题单元格...但是当我排序时,ASP.NET不会为我删除它。因此,目前我通过在第一个“排序”事件中遍历标题单元格来查找它。所以我有一些代码,我运行两次,一次添加箭头,一次在第一次手动排序,以删除它。这很复杂,几乎和整个工作一样多的工作都是在4.0之前。
所以...我必须遗漏一些东西:有没有办法告诉ASP.NET GridView它的内容已经以一种避免必须手动添加然后删除该排序指示符的方式进行排序?
答案 0 :(得分:5)
如果你知道你的Sort Expression&方向您可以通过以下方式明确设置:
GridView.Sort(expression, direction);
表达式将是列"col1, col2, etc"
答案 1 :(得分:1)
删除使用AutoGenerateColumns限制的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;");
}
}
}
}
}