Group Same Values in DataTable and Display Each Group related Data to seperate GridView in framework 2.0 using DataView with out Linq.


  private void Do_Work_1()//Group Same Values in DataTable and Display Each Group related Data to seperate GridView in 2.0 using DataView with out Linq.
        {
            DataTable dt = Mails_List_XL(Server.MapPath("~/Book1.xlsx"));
            int Count = dt.Rows.Count;
            DataSet ds = new DataSet();

            DataView dv = new DataView(dt);
            //getting distinct values for group column
            DataTable dtGroup = dv.ToTable(true, new string[] { "ID" });
            int Group_Count = dtGroup.Rows.Count;

            for (int i = 0; i < Group_Count; i++)
            {
                DataTable dt_new = new DataTable();
                dt_new.TableName = "Tab" + i;
                dt_new.Columns.Add("ID");
                for (int j = 0; j < Count; j++)
                {
                    if (dtGroup.Rows[i]["ID"].ToString() == dt.Rows[j]["ID"].ToString())
                    {
                        DataRow dr_new = dt_new.NewRow();
                        dr_new["ID"] = dt.Rows[j]["ID"].ToString();
                        dt_new.Rows.Add(dr_new);
                        dt_new.AcceptChanges();
                    }
                }
                if (dt_new.Rows.Count > 0)
                {
                    ds.Tables.Add(dt_new);
                }
            }
            foreach (DataTable dsdt in ds.Tables)
            {
                GridView gv = new GridView();
                gv.ID = dsdt.TableName;
                gv.DataSource = dsdt;
                gv.DataBind();
                mpl.Controls.Add(gv);
            }
        }

You Can Download the Working Code From here.