Cela peut ne pas être encore possible, mais j'ai un gridivew que par exemple des données est:Utiliser les données de Gridview 1 pour remplir Gridview 2
Je veux remplir puis une deuxième gridview qui montre un objet et commandes de cet élément comme ceci:
Est-ce même possible? Je pensais à faire une boucle FOREACH comme celle-ci, mais je ne sais pas comment je pourrais regrouper par item #, puis faire un i ++ pour chaque commande de cet item?
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();
J'ai mis à jour mon code ci-dessus .. c'est ce que j'utilise et il ne montre rien dans le Gridview dtProducts quand je l'exécute? – ksuProgrammer
Pas besoin de mettre cette chose dans cette boucle foreach. Il vous donnera une liste complète, 1 objet pour chaque produit, contenant le nom du produit et le nombre de commandes. Que DataGridView est basé sur une table, non? La base de cette première table dans votre question. La réponse a supposé que cette table dans votre code s'appelle dtOrders. Et qu'il a des colonnes "ORDERID" (celle qui contient 1, 2, 3 ..) et une colonne nommée "ITEM", qui contient "CAR1", "HAMMER", etc. Si le nom de la table ou les noms des colonnes sont différents , remplacez ces noms dans ma réponse. Ensuite, vérifiez si la table dtProducts est remplie, comme prévu. –
Est-il possible de faire un regroupement par deux champs différents ou un comptage de deux champs différents en fonction de ce seul élément? – ksuProgrammer