public void GenerateTheDynamicControls() { if (dtMainData != null) { Table tblData = new Table(); tblData.Caption = "Drop Down"; tblData.Width = Unit.Percentage(100); tblData.CellSpacing = 2; tblData.CellPadding = 4; tblData.BorderStyle = BorderStyle.Solid; foreach (DataRow dr in dtMainData.Rows) { TableRow tr = new TableRow(); tr.BorderStyle = BorderStyle.Solid; if (dr["ControlType"].ToString() == "DropDownList") { DropDownList ddl = new DropDownList(); TableCell cH = new TableCell(); System.Web.UI.WebControls.Label lbl = new System.Web.UI.WebControls.Label(); lbl.Text = "" + dr["ControlLabelName"].ToString() + " : "; cH.Controls.Add(lbl); tr.Cells.Add(cH); TableCell cH2 = new TableCell(); ddl.ClientIDMode = System.Web.UI.ClientIDMode.Static; ddl.ID = "" + dr["ControlName"].ToString(); List<string> lstDdlDataSource = new List<string>(); foreach (var ns in dr["ControlDataSourceString"].ToString().Split(';')) { if (ns.Trim() != "") { lstDdlDataSource.Add(ns); } } ddl.DataSource = lstDdlDataSource; ddl.DataBind(); ddl.Items.Insert(0, "Select"); if (dr["ConnectedToControl"].ToString().ToLower() == "true") { ddl.AutoPostBack = true; ddl.SelectedIndexChanged += new EventHandler(dropDowns_SelectedIndexChanged); } ScriptManager.GetCurrent(this).RegisterAsyncPostBackControl(ddl); cH2.Controls.Add(ddl); tr.Cells.Add(cH2); } tblData.Rows.Add(tr); } phCreateControls.Controls.Add(tblData); UpdatePanel1.Update(); } }
void dropDowns_SelectedIndexChanged(object sender, EventArgs e) { //bc.showJavascriptMessagesForScriptManagerPages("It Works", this.Page); if (dtMainData != null) { DataRow[] drSelection = dtMainData.Select("ControlName='" + (sender as DropDownList).ID.ToString()+ "'"); ; if (drSelection != null && drSelection.Length >= 1) { DropDownList ConnectedToControlName = phCreateControls.FindControl("" + drSelection[0]["ConnectedToControlName"]) as DropDownList; string[] ConnectedToControlDataSourceValues = drSelection[0]["ConnectedToControlDataSourceValues"].ToString().Split(','); List<string> lstDdlDataSource = new List<string>(); foreach (string str in ConnectedToControlDataSourceValues) { if (str.Contains((sender as DropDownList).SelectedValue.ToString())) { string [] valuesForData = str.Replace("[","").Replace("]","").Split('»'); foreach (var ns in valuesForData[1].Split(';')) { if (ns.Trim() != "") { lstDdlDataSource.Add(ns); } } } } ConnectedToControlName.DataSource = lstDdlDataSource; ConnectedToControlName.DataBind(); } } UpdatePanel1.Update(); }
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)