using System;
using System.Collections.Generic;
using System.Data;
using System.Data.SqlClient;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class dropdown : System.Web.UI.Page
{
int flag = 1;
SqlConnection con = new SqlConnection("Data Source=INSPIRE-1;Initial Catalog=new;Integrated Security=True");
public static int parent = 0;
int[] a = new int[20];
// SqlDataAdapter abc;
Panel pnlDropDownList;
protected void Page_PreInit(object sender, EventArgs e)
{
//Create a Dynamic Panel
pnlDropDownList = new Panel();
pnlDropDownList.ID = "pnlDropDownList";
pnlDropDownList.BorderWidth = 1;
pnlDropDownList.Width = 300;
this.form1.Controls.Add(pnlDropDownList);
//RecreateControls("ddlDynamic", "DropDownList");
//if (flag == 1)
//{
// flag = 0;
//}
//if (flag == 1)
//{
// RecreateControls("ddlDynamic", "DropDownList");
// flag = 0;
//}
//Create a LinkDynamic Button to Add TextBoxes
//LinkButton btnAddDdl = new LinkButton();
//btnAddDdl.ID = "btnAddDdl";
//btnAddDdl.Text = "Add DropDownList";
//btnAddDdl.Click += new System.EventHandler(btnAdd_Click);
//this.form1.Controls.Add(btnAddDdl);
}
protected void Page_Load(object sender, EventArgs e)
{
int cnt = FindOccurence("ddlDynamic");
if (cnt == 0)
{
a[cnt + 1] = 0;
CreateDropDownList("ddlDynamic-" + Convert.ToString(cnt + 1), a[cnt + 1]);
}
RecreateControls("ddlDynamic", "DropDownList");
if (flag == 1)
{
flag = 0;
}
}
//protected void btnAdd_Click(object sender, EventArgs e)
//{
// int cnt = FindOccurence("ddlDynamic");
// CreateDropDownList("ddlDynamic-" + Convert.ToString(cnt + 1));
//}
private int FindOccurence(string substr)
{
string reqstr = Request.Form.ToString();
return ((reqstr.Length - reqstr.Replace(substr, "").Length) / substr.Length);
}
private void RecreateControls(string ctrlPrefix, string ctrlType)
{
int value = 1;
string[] ctrls = Request.Form.ToString().Split('&');
int cnt = FindOccurence(ctrlPrefix);
if (cnt > 0)
{
for (int k = 1; k <= cnt; k++)
{
for (int i = 0; i < ctrls.Length; i++)
{
if (ctrls[i].Contains(ctrlPrefix + "-" + k.ToString()) && !ctrls[i].Contains("EVENTTARGET"))
{
string ctrlID = ctrls[i].Split('=')[0];
if (ctrlType == "DropDownList")
{
CreateDropDownList(ctrlID, a[value]);
value++;
}
break;
}
}
}
}
}
private void CreateDropDownList(string ID, int parent)
{
DropDownList ddl = new DropDownList();
ddl.ID = ID;
parent = Convert.ToInt32(Request[ddl.ClientID]);
con.Open();
SqlDataAdapter abc;
if (parent == 0)
{
abc = new SqlDataAdapter("select catid,name from catgry where parent =" + parent, con);
}
else
{
abc = new SqlDataAdapter("select catid,name from catgry where parent=" + parent, con);
}
//else
//{
// abc = new SqlDataAdapter("select catid,name from catgry where parent=" + parent, con);
//}
DataTable b = new DataTable();
abc.Fill(b);
ddl.DataSource = b;
ddl.DataTextField = "name";
ddl.DataValueField = "catid";
ddl.DataBind();
ddl.Items.Insert(0, new ListItem("Select Category", "0"));
con.Close();
ddl.AutoPostBack = true;
ddl.SelectedIndexChanged+=new EventHandler(OnSelectedIndexChanged);
pnlDropDownList.Controls.Add(ddl);
Literal lt = new Literal();
lt.Text = "<br />";
pnlDropDownList.Controls.Add(lt);
}
protected void OnSelectedIndexChanged(object sender, EventArgs e)
{
DropDownList ddl = (DropDownList)sender;
string ID = ddl.ID;
int cnt = FindOccurence("ddlDynamic");
a[cnt] = int.Parse(ddl.SelectedValue);
// parent = Convert.ToInt32(Request[ddl.ClientID]);
CreateDropDownList("ddlDynamic-" + Convert.ToString(cnt), a[cnt]);
// ClientScript.RegisterClientScriptBlock(this.GetType(), "Alert", "<script type = 'text/javascript'>alert('" + ID + " fired SelectedIndexChanged event');</script>");
// parent = Convert.ToInt32(ddl.SelectedValue);
//string a1 = ddl.SelectedItem.ToString();
}
}
what to do when dropdown is creating dynamically one above the other.i want to create below the dropdown while selecting values.please help