<%@ Page
Language="C#"
AutoEventWireup="true"
CodeFile="Default.aspx.cs"
Inherits="_Default"
%>
<!DOCTYPE html PUBLIC "-//W3C//DTD
XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:GridView ID="outergrid"
runat="server"
AutoGenerateColumns="false" OnRowDataBound="drop" ShowFooter="true"
DataKeyNames="id"
>
<Columns>
<asp:TemplateField HeaderText="textbox1">
<ItemTemplate>
<asp:TextBox ID="txtid" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="textbox2">
<ItemTemplate>
<asp:TextBox ID="txtname" runat="server"></asp:TextBox>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="coutrydrop">
<ItemTemplate>
<asp:DropDownList runat="server" ID="dropc" AppendDataBoundItems="true"
OnSelectedIndexChanged="dropc_SelectedIndexChanged"
AutoPostBack="true" >
<asp:ListItem Value="-1">--Select--</asp:ListItem>
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="statedrop">
<ItemTemplate>
<asp:DropDownList runat="server" ID="drops" AppendDataBoundItems="true"
>
<asp:ListItem Value="-1">--Select--</asp:ListItem>
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="innergrid">
<ItemTemplate>
<asp:GridView ID="innergrid" runat="server">
</asp:GridView>
</ItemTemplate>
<FooterTemplate>
<asp:Button ID="btnadd" Text="AddRows" runat="server" onclick="btnadd_Click" />
</FooterTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</div>
</form>
</body>
</html>
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
public partial class _Default :
System.Web.UI.Page
{
public string con = ConfigurationManager.ConnectionStrings["con"].ToString();
SqlConnection cn;
SqlCommand cmd;
protected void
Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
//ViewState.Clear();
for (int i = 0; i
< 10; i++)
{
CreateGridView();
}
}
}
public void
CreateGridView()
{
//int numbers = 10;
DataTable dt = new
DataTable();
dt.Columns.Add("id", typeof(string));
dt.Columns.Add("txtid", typeof(string));
dt.Columns.Add("txtname", typeof(string));
dt.Columns.Add("countrydrop",
typeof(string));
dt.Columns.Add("statedrop",
typeof(string));
dt.Columns.Add("innergrid", typeof(string));
dt.Rows.Add("", "", "",
"", "","");
if (ViewState["dt"]
== null)
{
dt.Rows.Add("", "", "",
"", "","");
ViewState["dt"] = dt;
outergrid.DataSource = dt;
outergrid.DataBind();
}
else
{
DataTable dt2 = (DataTable)ViewState["dt"];
dt2.Rows.Add("", "", "",
"", "","");
ViewState["dt"] = dt2;
outergrid.DataSource = dt2;
outergrid.DataBind();
}
//if (ViewState["dt"] == null)
//{
//
dt.Rows.Add("", "", "", "",
"");
//
ViewState["dt"] = dt;
//
outergrid.DataSource = dt;
//
outergrid.DataBind();
//}
}
protected void drop(object sender, GridViewRowEventArgs
e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
var drop = (DropDownList)e.Row.FindControl("dropc");
var drops = (DropDownList)e.Row.FindControl("drops");
SqlConnection cnn = new
SqlConnection(con);
SqlCommand cmd = new
SqlCommand("select
* from country");
cmd.Connection = cnn;
SqlDataAdapter da = new
SqlDataAdapter(cmd);
DataSet
ds = new DataSet();
da.Fill(ds);
drop.DataSource = ds;
drop.DataTextField = "cname";
drop.DataValueField = "cid";
drop.DataBind();
int CID = Convert.ToInt32(drop.SelectedValue);
SqlCommand cmd1 = new
SqlCommand("select
* from state1 where cid=" + CID, cnn);
SqlDataAdapter da1 = new
SqlDataAdapter(cmd1);
DataSet ds1 = new DataSet();
da1.Fill(ds1);
drops.DataSource = ds1;
drops.DataTextField = "sname";
drops.DataValueField = "sid";
drops.DataBind();
}
}
public void
dropc_SelectedIndexChanged(object sender, EventArgs e)
{
DropDownList dropc = (DropDownList)sender;
GridViewRow row = (GridViewRow)dropc.NamingContainer;
DropDownList drops = (DropDownList)row.FindControl("drops");
int CID = Convert.ToInt32(dropc.SelectedValue);
cn = new SqlConnection(con);
cn.Open();
cmd =
new SqlCommand("select * from state1 where cid=" + CID,
cn);
SqlDataAdapter da = new
SqlDataAdapter(cmd);
DataSet ds = new DataSet();
da.Fill(ds);
drops.DataSource = ds;
drops.DataTextField
= "sname";
drops.DataValueField = "sid";
drops.DataBind();
ViewState["dt4"] =
ds.Tables.Add();
// DropDownList2.Items.Insert(0, new
ListItem("--Select--", "0"));
}
protected void
btnadd_Click(object sender, EventArgs e)
{
// Session.Clear();
if (ViewState["dt"]
!= null)
{
DataTable dt1 = (DataTable)ViewState["dt"];
DataRow dr = null;
if (dt1.Rows.Count > 0)
{
dr = dt1.NewRow();
dr["id"] = dt1.Rows.Count +
1;
dt1.Rows.Add(dr);
ViewState["dt"] = dt1;
for (int
i = 0; i < dt1.Rows.Count - 1; i++)
{
DropDownList ddp = (DropDownList)outergrid.Rows[i].Cells[2].FindControl("dropc");
dt1.Rows[i]["countrydrop"]
= ddp.SelectedItem.Text;
//DropDownList dds =
(DropDownList)outergrid.Rows[i].Cells[3].FindControl("drops");
//dt1.Rows[i]["statedrop"] =
dds.SelectedItem.Text;
////dr = dt1.NewRow();
ViewState["dt"] = dt1;
}
outergrid.DataSource = dt1;
outergrid.DataBind();
ViewState["dt"] = dt1;
//DropDownList dropc = (DropDownList)sender;
//GridViewRow row =
(GridViewRow)dropc.NamingContainer;
//DropDownList drops =
(DropDownList)row.FindControl("drops");
}
}
else
{
Response.Write("view is null");
}
previousdata();
}
private void
previousdata()
{
int a = 0;
if (ViewState["dt"]
!= null)
{
DataTable dt3 = (DataTable)ViewState["dt"];
if (dt3.Rows.Count > 0)
{
for (int
i = 0; i < dt3.Rows.Count; i++)
{
DropDownList ddp = (DropDownList)outergrid.Rows[a].Cells[2].FindControl("dropc");
DropDownList dds = (DropDownList)outergrid.Rows[a].Cells[3].FindControl("drops");
//dt2.Columns.Add("countrydrop",
typeof(string));
//dt3.Rows[a]["countrydrop"] =
ddp.SelectedItem.Text;
ddp.SelectedValue = dt3.Rows[i]["countrydrop"].ToString();
dds.SelectedValue = dt3.Rows[i]["statedrop"].ToString();
if (i < dt3.Rows.Count - 1)
{
ddp.ClearSelection();
ddp.Items.FindByText(dt3.Rows[i]["countrydrop"].ToString()).Selected
= true;
//dds.ClearSelection();
//dds.Items.FindByText(dt3.Rows[i]["statedrop"].ToString()).Selected
= true;
}
a++;
}
}
}
}
}