這可能甚至是不可能的,但我有一個gridivew對於示例數據是:使用數據來填充的GridView 2
我想,然後填充第二個GridView控件顯示項目,該項目的訂單,像這樣:
這甚至可能嗎?想過要做一個像這樣的FOREACH循環,但不知道我會如何按項目分組#然後爲該項目的每個訂單做一個i ++?
DataTable dtProducts = new DataTable();
// Items for the product Gridview
foreach (GridViewRow row in ordersGridView.Rows)
{
var products = from orderRow in dt.AsEnumerable()
group orderRow["orderNo"] by orderRow["itemNo"] into grp
select new { product = grp.Key, orders = grp.Count() };
dt.Rows.Clear();
foreach (var prod in products)
{
DataRow r = dtProducts.NewRow();
r["PRODUCTS"] = prod.product;
r["ORDERS"] = prod.orders;
dtProducts.Rows.Add(r);
}
}
productGridView.DataSource = dtProducts;
productGridView.DataBind();
我上面更新了我的代碼..這就是我正在使用的,當我運行它時,dtProducts Gridview中什麼也沒有顯示? – ksuProgrammer
不需要將該東西放入該foreach循環中。它會給你整個清單,每個產品1個對象,包含產品名稱和訂單數量。 DataGridView是基於一個表,對吧?你問題中第一張表格的基礎。回答假設您的代碼中的這個表名爲dtOrders。並且它具有包含「CAR1」,「HAMMER」等的列「ORDERID」(保存1,2,3)和名爲「ITEM」的列。如果表名或列名不同,在我的答案中替換這些名字。然後查看dtProducts表是否按預期填充。 –
是否有可能根據兩個不同的字段進行分組,或基於這兩個不同的字段進行計數? – ksuProgrammer