.

Wednesday, August 3, 2011

Sample Nested Grid

private static string connString = "Data Source=RxDotnet;Initial Catalog=iCATCloud;User ID=dotnet;Password=dotnet;";
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
SqlConnection conn = new SqlConnection(connString);
conn.Open();
SqlCommand cmd = new SqlCommand("Select * from Category", conn);
SqlDataAdapter adpt = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
adpt.Fill(ds);
dt1.DataSource = ds;
dt1.DataBind();
conn.Close();
}
}
protected void dt1_ItemDataBound(object sender, DataListItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item e.Item.ItemType == ListItemType.AlternatingItem)
{
CheckBox chkData = (CheckBox)e.Item.FindControl("dtlchkBox");
int i = e.Item.ItemIndex;
string CurrentId = dt1.DataKeys[e.Item.ItemIndex].ToString();
SqlConnection conn = new SqlConnection(connString);
conn.Open();
SqlCommand cmd = new SqlCommand("Select * from Item where CategoryId=" + CurrentId, conn);
SqlDataAdapter adpt = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
adpt.Fill(ds);
GridView gv1 = (GridView)e.Item.FindControl("gv1");
gv1.DataSource = ds;
gv1.DataBind();
conn.Close();
}
}
protected void gv1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
string CurrentItemId = ((Label)e.Row.FindControl("lblItemId")).Text;
SqlConnection conn = new SqlConnection(connString);
conn.Open();
SqlCommand cmd = new SqlCommand("Select * from Model where ItemId=" + CurrentItemId, conn);
SqlDataAdapter adpt = new SqlDataAdapter(cmd);
DataSet ds = new DataSet();
adpt.Fill(ds);
GridView gv2 = (GridView)e.Row.FindControl("gv2");
gv2.DataSource = ds;
gv2.DataBind();
conn.Close();
}
}
protected void btnCheckAll_Click(object sender, EventArgs e)
{
for (int cat = 0; cat < dt1.Items.Count; cat++)
{
CheckBox dtlchkBox = (CheckBox)dt1.Items[cat].FindControl("dtlchkBox");
dtlchkBox.Checked = true;
GridView gv1 = (GridView)dt1.Items[cat].FindControl("gv1");
for (int i = 0; i < gv1.Rows.Count; i++)
{
//if (i == 0)
//{
// CheckBox gv1All = (CheckBox)gv1.HeaderRow.FindControl("gv1All");
// gv1All.Checked = true;
//}
CheckBox gvbox = (CheckBox)gv1.Rows[i].FindControl("gvbox");
gvbox.Checked = true;
GridView gv2 = (GridView)gv1.Rows[i].FindControl("gv2");
for (int mod = 0; mod < gv2.Rows.Count; mod++)
{
if (mod == 0)
{
CheckBox gv2All = (CheckBox)gv2.HeaderRow.FindControl("gv2All");
gv2All.Checked = true;
}
CheckBox gv2box = (CheckBox)gv2.Rows[mod].FindControl("gv2box");
gv2box.Checked = true;
}
}
}
}
protected void btnDelete_Click(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection(connString);
conn.Open();
 
for (int cat = 0; cat < dt1.Items.Count; cat++)
{
CheckBox dtlchkBox = (CheckBox)dt1.Items[cat].FindControl("dtlchkBox");
if (dtlchkBox.Checked)
{
Response.Write("DataList Id : " + dt1.DataKeys[cat].ToString());
Response.Write("
");
}
else
{
GridView gv1 = (GridView)dt1.Items[cat].FindControl("gv1");
for (int i = 0; i < gv1.Rows.Count; i++)
{
CheckBox gvbox = (CheckBox)gv1.Rows[i].FindControl("gvbox");
if (gvbox.Checked)
{
Response.Write("Grid 1 (Delete Item) : " + ((Label)gv1.Rows[i].FindControl("lblItemName")).Text);
Response.Write("
");
}
else
{
GridView gv2 = (GridView)gv1.Rows[i].FindControl("gv2");
for (int mod = 0; mod < gv2.Rows.Count; mod++)
{
if (mod == 0)
{
CheckBox gv2All = (CheckBox)gv2.HeaderRow.FindControl("gv2All");
if (gv2All.Checked)
{
Response.Write("Grid 2 (Delete All Model) : ");
Response.Write("
");
break;
}
}
CheckBox gv2box = (CheckBox)gv2.Rows[mod].FindControl("gv2box");
if (gv2box.Checked)
{
Response.Write("Grid 2 (Delete Model ) : " + ((Label)gv2.Rows[mod].FindControl("lblModname")).Text);
Response.Write("
");
}
}
}//*********
}
}//*********
}
}

.