DataView myDataView = dataset.table["**"].DefaultView;
myDataView.Sort = "State, ZipCode DESC";
然后在绑定到datagrid

解决方案 »

  1.   

    save the sorting information in the ViewState
      

  2.   

    <script runat="server">
        
          string SortExpression;
     
          ICollection CreateDataSource() 
          {
             DataTable dt = new DataTable();
             DataRow dr;
             Random Rand_Num = new Random();
     
             dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32)));
             dt.Columns.Add(new DataColumn("StringValue", typeof(string)));
             dt.Columns.Add(new DataColumn("CurrencyValue", typeof(double)));
     
             for (int i = 0; i < 15; i++) 
             {
                dr = dt.NewRow();
       
                dr[0] = i;
                dr[1] = "Item " + i.ToString();
                dr[2] = 1.23 * Rand_Num.Next(1, 15);
     
                dt.Rows.Add(dr);
             }
     
             DataView dv = new DataView(dt);
             dv.Sort=SortExpression;
             return dv;
          }
     
          void Page_Load(Object sender, EventArgs e) 
          {
             if (!IsPostBack) 
             {
     
                if (SortExpression == "")
                   SortExpression = "IntegerValue";      
                ItemsGrid.DataSource = CreateDataSource();
                ItemsGrid.DataBind();
             }
          }
     
          void Sort_Grid(Object sender, DataGridSortCommandEventArgs e) 
          {
             SortExpression = e.SortExpression.ToString();
             ItemsGrid.DataSource = CreateDataSource();
             ItemsGrid.DataBind();
          }
     
       </script>
      

  3.   

    可以使用Session保存排序信息!
      

  4.   

    参考一下,在sort事件里if (ViewState["SortDirect"] == null || ViewState["SortDirect"].ToString() == "ASC")
    {
    ViewState["SortDirect"] = "DESC";
    }
    else
    {
    ViewState["SortDirect"] = "ASC";
    }
    conn.m_DataView.Sort = e.SortExpression + " " + ViewState["SortDirect"];
    ListDataGrid.DataBind();