code_junkie

How can I sort a DataSet before doing a DataBind?

Nov 11th, 2011
105
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.97 KB | None | 0 0
  1. var sorted = table.Rows.Cast<DataRow>().OrderBy(row => your code);
  2. int sequence = 0;
  3. foreach(var row in sorted)
  4. {
  5. row["sequence"] = sequence++;
  6. }
  7.  
  8. List<DataRow> sorted = new List<DataRow>();
  9. foreach(DataRow row in table.Rows)
  10. {
  11. sorted.Add(row);
  12. }
  13. sorted.Sort(delegate(DataRow x, DataRow y) { your code });
  14. int sequence = 0;
  15. foreach(DataRow row in sorted)
  16. {
  17. row["sequence"] = sequence++;
  18. }
  19.  
  20. var dt = new DataTable();
  21. gvWhatever.DataSource = dt.Select().ToList().Sort();
  22.  
  23. myTableName.DefaultView.Sort = "MyFieldName DESC";
  24.  
  25. //Code added to fix issue with sorting for Date datatype fields
  26. if (dataTable != null)
  27. {
  28.  
  29. DataView dataView = new DataView(dataTable);
  30. for (int i = 0; i < dataView.Table.Rows.Count; i++)
  31. {
  32. try
  33. {
  34. dataView.Table.Rows[i]["RESP_DUE_DT"] = common.FormatDateWithYYYYMMDD(Convert.ToDateTime(dataView.Table.Rows[i]["RESP_DUE_DT"]));
  35. dataView.Table.Rows[i]["RECD_DT"] = common.FormatDateWithYYYYMMDD(Convert.ToDateTime(dataView.Table.Rows[i]["RECD_DT"]));
  36. }
  37. catch (Exception ex)
  38. {
  39.  
  40. }
  41. }
  42.  
  43. dataView.Sort = "[" + e.SortExpression + "]" + " " + GetSortDirection(e.SortExpression);
  44.  
  45. for (int i = 0; i < dataView.Table.Rows.Count; i++)
  46. {
  47. try
  48. {
  49. dataView.AllowEdit = true;
  50. dataView[i].BeginEdit();
  51. dataView[i]["RESP_DUE_DT"] = common.FormatDateFromStringYYYYMMDD(dataView[i]["RESP_DUE_DT"].ToString());
  52. dataView[i]["RECD_DT"] = common.FormatDateFromStringYYYYMMDD(dataView[i]["RECD_DT"].ToString());
  53. }
  54. catch (Exception ex)
  55. {
  56.  
  57. }
  58. }
  59. //End code added to fix the issue with sorting for Date data type fields
  60.  
  61.  
  62. grdResult.DataSource = dataView;
  63. grdResult.DataBind();
  64.  
  65.  
  66. }
  67. }
Add Comment
Please, Sign In to add comment