如题

解决方案 »

  1.   

    你上google或者 msdn, 会有一大把sample
      

  2.   

    chenzhifeng(晓峰)  
      +
    排序的基本原理是在数据库先 order by 
     然后在绑定-----------------------
    chenzhifeng(晓峰)  你名字怎么跟我一样
      

  3.   

    你想怎么排序?列头排序?
    那就设置DataGrid的AllowPaging的属性。
      

  4.   

    利用ViewState保存当前 ASC或者DESC的状态。。将此状态拼接到查询语句后。。我一般是这样处理的。。
      

  5.   

    就列头排序,但排序事件如何编写呢?
    ViewState是什么呢?
      

  6.   

    zifeng_86188281() ( ) 信誉:100    Blog 
     不会吧
    好像没那么巧吧
    还有你是86年的吗???
    LZ
    ViewState是一个视图可以存储数据用,可能跟session一样(个人认为)
    页面刷新值不会变的
      

  7.   

    前台页面代码:
    <asp:BoundColumn DataField="UserID" SortExpression="UserID" HeaderText="用户名"></asp:BoundColumn>
    <asp:BoundColumn DataField="TestingDate" SortExpression="TestingDate" HeaderText="测试日期"></asp:BoundColumn>
    <asp:BoundColumn DataField="TestingScore" SortExpression="TestingScore" HeaderText="测试成绩"></asp:BoundColumn>
    后台代码:
    string OrderBy;
    if(ViewState["OrderBy"] == null)
    {
    OrderBy = " JXNF_KS_TESTING.TESTINGDATE DESC";
    ViewState["OrderBy"] = OrderBy;
    }
    else
    OrderBy = ViewState["OrderBy"].ToString();
    if(OrderBy != "")
    strSql += " ORDER BY " + OrderBy;private void Dg_Main_ItemCommand(object source,System.Web.UI.WebControls.DataGridCommandEventArgs e)
    {
       if(e.CommandName.Equals("Sort"))
        {
          if(ViewState["OrderBy"].ToString().Equals(e.CommandArgument + " ASC"))
           ViewState["OrderBy"] = e.CommandArgument + " DESC";
          else
          ViewState["OrderBy"] = e.CommandArgument + " ASC";
          Dg_Main.SelectedIndex = -1;
        }
    dbgrid重新绑定
    }
      

  8.   

    DataTable tb = new DataTable();在sortCommand事件里重新绑定至dv即可
    DataView dv = tb.DefaultView;
    new DataView();
    dv.Sort = "";
    datagrid.DataSource=dv;
    datagrid.DataBind();