1

i am trying to sort a DataSet as desired:

protected void GridView1_Sorting1(object sender, GridViewSortEventArgs e)
{
   DataSet data = (DataSet)GridView1.DataSource;

   //sort data by e.SortExpressions

   //data.Sort   that doesn't work
   //data.Tables[0].Sort    that doesn't work
   DataView view = data.Tables[0].DefaultView;
   view.Sort = e.SortExpression;

   GridView1.DataBind();
}

Do not try and sort the DataSet - that's impossible. Instead, only try to realize the truth...

...you sort the DataView instead the DataTable inside the DataSet:

protected void GridView1_Sorting1(object sender, GridViewSortEventArgs e)
{
   DataSet dataSet = (DataSet)GridView1.DataSource;
   DataTable dataTable = (DataTable)dataSet.Tables[0];
   DataView dataView = dataTable.DefaultView;

   dataView.Sort = "TransactionNumber";

   GridView1.DataBind();
}

Except the grid doesn't come out sorted by the TransactionNumber column in the Data*.

Is there some view.RunSort() method that needs to be called before sorting "takes effect"?

Bonus Reading

Community
  • 1
  • 1
Ian Boyd
  • 246,734
  • 253
  • 869
  • 1,219

0 Answers0