正確排序我目前正在從SQL Server獲取數據並存儲在DataTable中。我在該DataTable上應用GroupBy操作,以便在DataGrid中以各種形式顯示錶。在創建子數據表後,我通過放置DataView來排序DataTable。排序DataView後,我將它綁定到DataGridView。但問題在於由GroupBy製作的行沒有正確排序DataView不正確排序DataTable GroupBy
我可以爲此獲得解決方案嗎?
這裏是DataView GroupBy代碼。
DataView view = new DataView(dtfullreport); // Datatable to dataview.
var drdatedisp = from row in dtfullreport.AsEnumerable()
group row by row.Field<string>("Order_Date") into g
select new
{
Order_Date = g.Key,
totalQnty = g.Sum(a => a.Field<int>("Item_Quantity")),
totalTax = g.Sum(a => float.Parse(a.Field<decimal>("TAXAMT").ToString())),
totalAmt = g.Sum(a => float.Parse(a.Field<decimal>("VALAMT").ToString()))
};
DataTable dtdatedisp = new DataTable();
dtdatedisp.Columns.Add("Order_Date");
dtdatedisp.Columns.Add("Item_Quantity");
dtdatedisp.Columns.Add("TAXAMT");
dtdatedisp.Columns.Add("VALAMT");
dtdatedisp.Rows.Clear();
foreach (var g in drdatedisp)
{
DataRow newRow1 = dtdatedisp.NewRow();
newRow1[0] = g.Order_Date;
newRow1[1] = g.totalQnty;
newRow1[2] = String.Format("{0:0.00}", g.totalTax);
newRow1[3] = String.Format("{0:0.00}", g.totalAmt);
dtdatedisp.Rows.Add(newRow1);
}
分組的數據視圖和數據表在放置後,我整理數據表
這裏是分類編碼。 這將寫入GridView排序事件。
string sortingDirection = string.Empty;
if (dir == SortDirection.Ascending)
{
dir = SortDirection.Descending;
sortingDirection = "Desc";
}
else
{
dir = SortDirection.Ascending;
sortingDirection = "Asc";
}
DataView sortedView = new DataView((DataTable)ViewState["dtdatedisp"]);
sortedView.Sort = e.SortExpression + " " + sortingDirection;
gv_reports_date.DataSource = sortedView; // Gridview datasource and binding
gv_reports_date.DataBind();
我根據order_date的列,但排序按降序 的數據視圖後分類,但輸出是,在排序前分組
默認視圖前
數據表。 (根據數據庫中的日期排序)。
在降序售出數量的順序排序後。
在售出數量的升序排序後。
這些分組的行不被顯示在正確的排序
對不起影像不顯示 – 2012-08-10 06:10:07