RT

解决方案 »

  1.   

    ViewState["SortOrder"] = "LastName";
    //设置排序的升降序
    ViewState["OrderDire"] = "ASC";
    DataView view = ds.Tables["testTable"].DefaultView;
    //设置排序关键字
    string sort = (string)ViewState["SortOrder"] + " " + (string)ViewState["OrderDire"];
    //设置排序表达式
    view.Sort =  sort;
    //数据邦定
    dgPagerState.DataSource = view;
    dgPagerState.DataBind();
      

  2.   

    1: datagrid的属性 
    AllowSorting=”true”:表示启用DataGrid排序的功能  2: 在HTML里面(加在table外面)加入一个<input id="sortfield" type="hidden" value="activity_student_id" name="sortfield" runat="server"> 
    作为排序时改变字段用 
    3:datagrid中的排序表达式和数字字段一致 
    4 :加入命名空间 Imports System.Data 
    Imports System.Data.SqlClient 5:If InStr(sortfield.Value, "desc") = 0 Then 
    sortfield.Value = e.SortExpression & " desc" 
    Else 
    sortfield.Value = e.SortExpression & " asc" 
    End If 
    BindGrid() 
    说明:《1》e.SortExpression等于“被按下之排序链接”的字段名称。 
    《2》 If InStr(sortfield.Value, "desc") = 0如果原来的排序方式原来的排序方式为“递增排序”。这时把排序方式(softfield.value)设置成”Desc”(表示递减排序)。否则设置为””,表示为“递增排序” 
    《3》这时softfield.value获得的就是”字段”+”排序” 接着BindGrid(). 
    Sub bindgrid() 
    txtSQL = "select * from ……where………. 
    DBSet = ExecuteSQL(txtSQL, ErrorMsg) '每个程序员获取dataset的方式都不一样, 
    '总之这里你就想办法获取一个dataset数据集 ,您也可以参考我的vb连接 sqlserver2000数据库的函数 
    Dim dtable As DataTable = DBSet.Tables(0) 
    Dim dview As New DataView(dtable) 
    dg.Sort = sortfield.Value 
    dg.DataSource = dview 
    dg.DataBind() 
    End Sub