PrivateSub Page_Load()Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesMyBase.Load IfNot IsPostBack Then If dgdBook.Attributes("SortExpression") IsNothingThen dgdBook.Attributes("SortExpression") ="dlh"'这里给datagrid增加一个排序属性,且默认排序表达式为dlh dgdBook.Attributes("SortDirection") ="ASC"'这里给datagrid增加一个排序方向属性,且默认为升序排列 EndIf BindDataGrid() EndIf End Sub PrivateSub BindDataGrid()Sub BindDataGrid() '.. Dim dt AsNew DataTable dataAdapter.Fill(dt) Dim dv As DataView = dt.DefaultView Dim SortExpression AsString= dgdBook.Attributes("SortExpression") '排序表达式 Dim SortDirection AsString= dgdBook.Attributes("SortDirection") '排序方向 dv.Sort = SortExpression +""+ SortDirection '指定视图的排序方式; dgdBook.AllowSorting =True dgdBook.DataSource = dv dgdBook.DataBind() End Sub PrivateSub dgdBook_SortCommand()Sub dgdBook_SortCommand(ByVal source AsObject, ByVal e As System.Web.UI.WebControls.DataGridSortCommandEventArgs) Handles dgdBook.SortCommand Dim SortExpression AsString= dgdBook.Attributes("SortExpression").ToString '获取原来的排序字段 Dim SortDirection AsString= dgdBook.Attributes("SortDirection").ToString '获取原来的排序方向 If e.SortExpression.ToString = SortExpression Then SortDirection =IIf(SortDirection ="ASC", "DESC", "ASC") '点击同一列标题改变排列方向 Else'点击不同列标题改变排列字段,升序排序 SortExpression = e.SortExpression.ToString SortDirection ="ASC" EndIf dgdBook.Attributes("SortExpression") = SortExpression '赋予新的排序字段 dgdBook.Attributes("SortDirection") = SortDirection '赋予新的排序方向 BindDataGrid() End Sub