【发布时间】:2014-07-26 01:14:08
【问题描述】:
我所做的如下
dtClaim.DefaultView.Sort = "TransactionDate asc";
dtClaim = dtClaim.DefaultView.ToTable();
ViewState["dtClaim"] = dtClaim;
这是应用排序前数据表数据的屏幕截图
但在使用上述代码后,我也无法使用“TransactionDate”对数据进行排序
编辑
这里我展示了我是如何准备这个数据表的
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;
【问题讨论】:
-
排序工作正常 - 我认为这是一个绑定问题。
-
应用上述排序逻辑后,我尝试在快速查看中查看数据,但没有任何排序数据。和以前一样..
-
对我来说很好 - 可能是你的编译器坏了 -postimg.org/image/8braslgrn
-
请找到更新的问题..
-
发现问题......Datatable 正在考虑将“TransactionDate”作为字符串,因为我没有为其指定数据类型。我刚刚定义了数据类型,它就像超人一样工作。