在InitializeComponent()中加入
DataGrid1.SortCommand += new DataGridSortCommandEventHandler(mydatagridsort)

解决方案 »

  1.   

    是我说的。
    参考微软排序的例子:
    对任何网格的共同要求是能够将它包含的数据排序。虽然 DataGrid 控件不为您显式排序它的数据,但它确实提供一种方法,在用户单击可用来排序数据的列标头时调用事件处理程序。当 DataGrid 的 AllowSorting 属性设置为 true 时,它呈现将 Sort 命令激发回网格的列标头的超级链接。将 DataGrid 的 OnSortCommand 属性设置为当用户单击列链接时要调用的处理程序。列的名称作为 DataGridSortCommandEventArgs 参数上的 SortExpression 属性传递,该参数可用来设置绑定到网格的 DataView 的 Sort 属性。下面的示例说明此过程。<script>
        Protected Sub MyDataGrid_Sort(Src As Object, E As DataGridSortCommandEventArgs)
            ...
            DataView Source = ds.Tables("Authors").DefaultView
            Source.Sort = E.SortExpression
            MyDataGrid.DataBind()
        End Sub
    </script><form runat="server">
        <ASP:DataGrid id="MyDataGrid" OnSortCommand="MyDataGrid_Sort" 
            AllowSorting="true" runat="server" />
    </form>
      

  2.   

    将AutoGenerateColumns="False" 改成AutoGenerateColumns="True"试试:)
      

  3.   

    而且我觉得奇怪的是为什么我把allowsort的属性改为true.网格的列标头没有变成超链接的形式,这会是什么原因造成的?