private void DataGrid1_SortCommand(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)  //sort
{
e.SortExpression.ToString();//这种方式只能得到排序字段名,不能得到表头标题,因为这两者有可能不等
}回icefireren():i是DataGrid的某一列呀,对于某一DataGrid,列数有一个固定值,你可以这样取得它的最大值DataGrid.Columns.Count-1

解决方案 »

  1.   

    :)谢谢你的回答,但我就是想知道我如果用DataGrid1.Columns[i].HeaderText
    属性来操作时,我该如何知道我所选中的究竟是哪列?也就是说如何动态获取i?
      

  2.   

    让列名和标题一致就可以
    select 时用别名

    把sql改成select saleNO as 编号 from sale
      

  3.   

    谢谢 mfc2001:
      我想要实现升降排序,并在标头中加"↑""↓"以示当前排序方式,所以您的方法行不通,麻烦再帮忙想想其他办法。
      

  4.   

    ??blucecat(一言稀音) ,能帮我回答一下那问题吗(上文)?也就是说如何知道点击的是哪列?
      

  5.   

    ???blucecat(一言稀音) 能帮我回答一下上文的问题吗?
    我的意思就是如何知道点击的是哪一列,并获取该列的列名!
      

  6.   

    to icefireren:
    private void DataGrid1_SortCommand(object source, System.Web.UI.WebControls.DataGridSortCommandEventArgs e)  //sort
    {
    e.SortExpression;//这就是你想要的(我已回答过了,不必用ToString()转换,因为它已经是string类型了)
    }
      

  7.   

    遍历所有列,判断该列的SortExpression是否等于e.SortExpression
      

  8.   

    谢谢yxrj:
    我时这样实现的:
    遍历所有列,判断该列的HeaderText是否等于e.SortExpression ,然后做进一步的处理