static int iValue = 0; static Panel[] pnlAttactCondition = new Panel[1]; private void Add_Panel(Panel pnlTemp) { try { foreach (Control item in pnlTemp.Controls) { if (item is CheckBox) { (item as CheckBox).CheckedChanged += new EventHandler(cboxAge_CheckedChanged); } if (item is RadioButtonList) { (item as RadioButtonList).SelectedIndexChanged += new EventHandler(rblInformationType_SelectedIndexChanged); } if (item is Button) { (item as Button).Click += new EventHandler(btnCancel_Click); } if (item is UpdatePanel) { (item as UpdatePanel).Unload += new EventHandler(UpdatePanel_Unload); } } pnlMainConditions.Controls.Add(pnlTemp); pnlMainConditions.Controls.Add(new LiteralControl("<br>")); } catch (Exception) { throw; } } private Panel GenerateControls(string strtemp) { Panel pnlCondition = null; RadioButtonList rblInformationType =null; TextBox txtPercentage=null; TextBox txtFixedAmount=null; TextBox txtMinimumAmount=null; TextBox txtMaximumAmount=null; TextBox txtFormula = null; TextBox txtStartAge = null; TextBox txtEndAge = null; CheckBox cboxAge = null; Label lblAmountType = null; Label lblMinimumAount = null; Label lblMaximumAmount = null; Label lblStartAge = null; Label lblEndAge = null; Button btnCancel = null; UpdatePanel uppnlTemp = null; try { iValue++; pnlCondition = new Panel(); rblInformationType = new RadioButtonList(); txtPercentage = new TextBox(); txtFixedAmount = new TextBox(); txtFormula = new TextBox(); txtMinimumAmount = new TextBox(); txtMaximumAmount = new TextBox(); txtStartAge = new TextBox(); txtEndAge = new TextBox(); cboxAge = new CheckBox(); lblAmountType = new Label(); lblMinimumAount = new Label(); lblMaximumAmount = new Label(); lblStartAge = new Label(); lblEndAge = new Label(); btnCancel = new Button(); uppnlTemp = new UpdatePanel(); rblInformationType.RepeatDirection = RepeatDirection.Horizontal; rblInformationType.Items.Add("Percentage"); rblInformationType.Items.Add("Fixed Amount"); rblInformationType.Items.Add("Formula"); rblInformationType.ClientIDMode = ClientIDMode.Static; rblInformationType.ID = "rblInformationType_" + Convert.ToString(iValue); rblInformationType.SelectedIndexChanged += new EventHandler(rblInformationType_SelectedIndexChanged); rblInformationType.AutoPostBack = true; txtPercentage.ClientIDMode = ClientIDMode.Static; txtPercentage.ID = "txtPercentage_" + Convert.ToString(iValue); txtPercentage.Width = 240; txtPercentage.CssClass = "inputs"; txtFixedAmount.ClientIDMode = ClientIDMode.Static; txtFixedAmount.ID = "txtFixedAmount_" + Convert.ToString(iValue); txtFixedAmount.Width = 240; txtFixedAmount.CssClass = "inputs"; txtFormula.ClientIDMode = ClientIDMode.Static; txtFormula.ID = "txtFormula_" + Convert.ToString(iValue); txtFormula.Width = 240; txtFormula.CssClass = "inputs"; txtMinimumAmount.ClientIDMode = ClientIDMode.Static; txtMinimumAmount.ID = "txtMinimumAmount_" + Convert.ToString(iValue); txtMinimumAmount.Width = 240; txtMinimumAmount.CssClass = "inputs"; txtMaximumAmount.ClientIDMode = ClientIDMode.Static; txtMaximumAmount.ID = "txtMaximumAmount_" + Convert.ToString(iValue); txtMaximumAmount.Width = 240; txtMaximumAmount.CssClass = "inputs"; txtStartAge.ClientIDMode = ClientIDMode.Static; txtStartAge.ID = "txtStartAge_" + Convert.ToString(iValue); txtStartAge.Width = 240; txtStartAge.CssClass = "inputs"; txtEndAge.ClientIDMode = ClientIDMode.Static; txtEndAge.ID = "txtEndAge_" + Convert.ToString(iValue); txtEndAge.Width = 240; txtEndAge.CssClass = "inputs"; cboxAge.ClientIDMode = ClientIDMode.Static; cboxAge.ID = "cboxAge_" + Convert.ToString(iValue); cboxAge.Text = "Is Age Factor applicable for this condition"; cboxAge.CheckedChanged += new EventHandler(cboxAge_CheckedChanged); cboxAge.AutoPostBack = true; lblAmountType.Text = string.Empty; lblAmountType.ID = "lblAmountType_" + Convert.ToString(iValue); lblAmountType.ClientIDMode = ClientIDMode.Static; lblMinimumAount.Text = "Minimum Amount"; lblMinimumAount.ID = "lblMinimumAmount_" + Convert.ToString(iValue); lblMinimumAount.ClientIDMode = ClientIDMode.Static; lblMaximumAmount.Text = "Maximum Amount"; lblMaximumAmount.ID = "lblMaximumAmount_" + Convert.ToString(iValue); lblMaximumAmount.ClientIDMode = ClientIDMode.Static; lblStartAge.Text = "Age From"; lblStartAge.ID = "lblStartAge_" + Convert.ToString(iValue); lblStartAge.ClientIDMode = ClientIDMode.Static; lblEndAge.Text = "Age Upto"; lblEndAge.ID = "lblEndAge_" + Convert.ToString(iValue); lblEndAge.ClientIDMode = ClientIDMode.Static; btnCancel.Text = "Cancel"; btnCancel.ClientIDMode = ClientIDMode.Static; btnCancel.ID = "btnCancel_" + Convert.ToString(iValue); btnCancel.CssClass = "bluebtn"; btnCancel.Click += new EventHandler(btnCancel_Click); uppnlTemp.ID = "uppnlTemp_" + Convert.ToString(iValue); uppnlTemp.ClientIDMode = ClientIDMode.Static; uppnlTemp.UpdateMode = UpdatePanelUpdateMode.Conditional; //uppnlTemp.Unload += new EventHandler(UpdatePanel_Unload); uppnlTemp.ContentTemplateContainer.Controls.Add(rblInformationType); pnlCondition.ClientIDMode = ClientIDMode.Static; pnlCondition.ID = "pnlCondition_" + Convert.ToString(iValue); pnlCondition.BorderColor = Color.Gray; pnlCondition.BorderWidth = 5; pnlCondition.ToolTip = strtemp; pnlCondition.Controls.Add(new LiteralControl("<table><tr><td> Select Any One </td><td>")); pnlCondition.Controls.Add(uppnlTemp); pnlCondition.Controls.Add(new LiteralControl("</td></tr>")); pnlCondition.Controls.Add(new LiteralControl("<br/>")); pnlCondition.Controls.Add(new LiteralControl("<tr><td>")); pnlCondition.Controls.Add( lblAmountType ); pnlCondition.Controls.Add(new LiteralControl("</td><td>")); pnlCondition.Controls.Add(txtPercentage); pnlCondition.Controls.Add(txtFixedAmount); pnlCondition.Controls.Add(txtFormula); pnlCondition.Controls.Add(new LiteralControl("</td></tr>")); pnlCondition.Controls.Add(new LiteralControl("<tr><td>")); pnlCondition.Controls.Add(lblMinimumAount); pnlCondition.Controls.Add(new LiteralControl("</td><td>")); pnlCondition.Controls.Add(txtMinimumAmount); pnlCondition.Controls.Add(new LiteralControl("</td></tr><tr><td>")); pnlCondition.Controls.Add(lblMaximumAmount); pnlCondition.Controls.Add(new LiteralControl("</td><td>")); pnlCondition.Controls.Add(txtMaximumAmount); pnlCondition.Controls.Add(new LiteralControl("</td></tr><tr><td>")); pnlCondition.Controls.Add(cboxAge); pnlCondition.Controls.Add(new LiteralControl("</td></tr><tr><td>")); pnlCondition.Controls.Add(lblStartAge); pnlCondition.Controls.Add(new LiteralControl("</td><td>")); pnlCondition.Controls.Add(txtStartAge); pnlCondition.Controls.Add(new LiteralControl("</td></tr><tr><td>")); pnlCondition.Controls.Add(lblEndAge); pnlCondition.Controls.Add(new LiteralControl("</td><td>")); pnlCondition.Controls.Add(txtEndAge); pnlCondition.Controls.Add(new LiteralControl("</td></tr><tr></tr><tr><td></td><td>")); pnlCondition.Controls.Add(btnCancel); pnlCondition.Controls.Add(new LiteralControl("</td></tr></table>")); rblInformationType.SelectedIndex = 0; txtFixedAmount.Visible = false; txtFormula.Visible = false; cboxAge.Checked = false; lblStartAge.Visible = false; txtStartAge.Visible = false; lblEndAge.Visible = false; txtEndAge.Visible = false; lblAmountType.Text = "Set Percentage"; return pnlCondition; } catch (Exception ex) { throw ex; } } public void RegisterUpdatePanel(UpdatePanel panel) { MethodInfo m =(from methods in typeof(ScriptManager).GetMethods(BindingFlags.NonPublic | BindingFlags.Instance) where methods.Name.Equals("System.Web.UI.IScriptManagerInternal.RegisterUpdatePanel") select methods).First<MethodInfo>(); m.Invoke(ScriptManager.GetCurrent(Page), new object[] { panel }); } protected void Page_Load(object sender, EventArgs e) { try { if (!IsPostBack) { iValue = 0; pnlAttactCondition = new Panel[1]; } } catch (Exception ex) { throw ex; } } protected override void OnInit(EventArgs e) { if (pnlAttactCondition[0] is Panel) { foreach (Panel pTemp in pnlAttactCondition) { if (pTemp != null) { Add_Panel(pTemp); } } } //Page page = HttpContext.Current.Handler as Page; //page.Init += delegate(object sender, EventArgs e_Init) //{ // if (ScriptManager.GetCurrent(page) == null) // { // ScriptManager sMgr = new ScriptManager(); // page.Form.Controls.AddAt(0, sMgr); // } //}; //base.OnInit(e); } protected void UpdatePanel_Unload(object sender, EventArgs e) { try { RegisterUpdatePanel(sender as UpdatePanel); } catch (Exception ex) { throw ex; } } protected void btnAddCondition_Click(object sender, EventArgs e) { int iIndex = iValue; try { if (pnlAttactCondition.Length <= iValue) { Array.Resize(ref pnlAttactCondition, iValue + 1); } pnlAttactCondition[iIndex] = new Panel(); pnlAttactCondition[iIndex] = GenerateControls(iIndex.ToString()); Add_Panel(pnlAttactCondition[iIndex]); } catch (Exception ex) { throw ex; } }
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)