// Global variables with private acess level string _L1, _L2, _L3, _L4, _L5; string[] Values; _L1 = _L2 = _L3 = _L4 = _L5 = null; // in PageLOading (!Page.IsPostback) public void HideRemainingDDLs(DropDownList _ddlname) { // _ddlname is the name of DropDownList, which doesn't have a sub-tree, in our case DDL2 // _L1 = Session["L1ID"] == null ? null : Session["L1ID"].ToString(); _L2 = Session["L2ID"] == null ? null : Session["L2ID"].ToString(); _L3 = Session["L3ID"] == null ? null : Session["L3ID"].ToString(); _L4 = Session["L4ID"] == null ? null : Session["L4ID"].ToString(); _L5 = Session["L5ID"] == null ? null : Session["L5ID"].ToString(); UpdatePanel up = (UpdatePanel)TagEditor; Values = new string[5] { _L1, _L2, _L3, _L4, _L5 }; // Storing Session Variable as a string array if (up.HasControls()) { foreach (Control subCtrl in up.Controls[0].Controls) { if (subCtrl is DropDownList) // Check only if the Controls is a DropDownList { DropDownList ddl = subCtrl as DropDownList; if (ddl.Visible == true) // Check only visible controls { if (ddl != null && ddl.TabIndex > _ddlname.TabIndex) // DDL TabIndex starts from 0 { int i = ddl.TabIndex; Values[i] = null; ddl.Visible = false; // Hide the current DDL ddl.Items.Clear(); // remove all items in the DDL } } } } } } Example DDL SelectedIndexChanged Event protected void DDLSubL1_SelectedIndexChanged(object sender, EventArgs e) { if (populate("PopulateL2Subjects", DDLSubL2, DDLSubL1, out _subject1)) // method to retive data from DB, returns bool value. { DDLSubL2.Visible = true; } else { HideRemainingDDLs(DDLSubL1); // Method which is implemented above DDLSubL2.Items.Add("Select chapter"); } // set the value irrespective of new list. Session["L1ID"]= _subject1; }
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)