Reputation: 1649
What i have done is as below
dtClaim.DefaultView.Sort = "TransactionDate asc";
dtClaim = dtClaim.DefaultView.ToTable();
ViewState["dtClaim"] = dtClaim;
Here is a screen shot of data of data table before applying a sorting
But also after using above code i am not able to sort data by using "TransactionDate"
Edit
Here i shown that how i am preparing this datatable
DataTable dtClaim = new DataTable();
dtClaim = (DataTable)ViewState["dtClaim"];
DataRow drClaim = dtClaim.NewRow();
drClaim["ClaimId"] = count + 1;
drClaim["TextileClaimApplicationId"] = ViewState["TextileClaimApplicationId"].ToString();
drClaim["BankId"] = ViewState["TextileClaimApplicationId"].ToString();
drClaim["BankName"] = ViewState["TextileClaimApplicationId"].ToString();
drClaim["SectorId"] = ViewState["TextileClaimApplicationId"].ToString();
drClaim["IsDisbursment"] = rblIsDisbursment.SelectedValue;
drClaim["TransactionDate"] = txtDisbursementDate.Text == "" ? Convert.ToDateTime(txtRepaymentDate.Text, System.Globalization.CultureInfo.GetCultureInfo("en-GB").DateTimeFormat) : Convert.ToDateTime(txtDisbursementDate.Text, System.Globalization.CultureInfo.GetCultureInfo("en-GB").DateTimeFormat);
drClaim["DisbursementAmount"] = txtDisbursementAmount.Text == "" ? Convert.ToDecimal("0") : Convert.ToDecimal(txtDisbursementAmount.Text);
drClaim["RepaymentPrincipleAmount"] = txtRepaymentPrincipleAmount.Text == "" ? Convert.ToDecimal("0") : Convert.ToDecimal(txtRepaymentPrincipleAmount.Text);
drClaim["RepaymentOtherAmount"] = txtRepaymentOtherAmount.Text == "" ? Convert.ToDecimal("0") : Convert.ToDecimal(txtRepaymentOtherAmount.Text);
dtClaim.Rows.Add(drClaim);
dtClaim.DefaultView.Sort = "TransactionDate";
dtClaim = dtClaim.DefaultView.ToTable();
ViewState["dtClaim"] = dtClaim;
Upvotes: 1
Views: 1595
Reputation: 531
In order to get my code to recognize a DataTable value as a DateTime I had to set the data type of my row when I created it. (I was using this DataTable as a DataSource for my GridView and was having difficulties getting it to sort on it.)
previously I had
DataTable dt = new DataTable();
dt.Columns.Add("ID");
dt.Columns.Add("StartDate");
I changed this to
dt.Columns.Add("StartDate", typeof(DateTime));
Changing the type I was inserting into that column to a DateTime did not work until I set the column type.
https://msdn.microsoft.com/en-us/library/hfx3s9wd(v=vs.110).aspx
Upvotes: 1