<table border="1" cellpadding="0" cellspacing="0" id="tblGenerate" runat="server"> <tr> <td> <asp:Label ID="lblName" runat="server" Text="Name"></asp:Label> </td> <td> <asp:TextBox ID="txtName" runat="server"></asp:TextBox> </td> <td> <asp:Button ID="btnAdd" runat="server" Text="Add New" OnClick="btnAdd_Click"/> </td> <td> <asp:Label ID="lblCost" runat="server"></asp:Label> </td> </tr> <tr> <td id="trGenerate" runat="server" colspan="3"> </td> </tr> </table>
protected void Page_Load(object sender, EventArgs e) { } protected void Page_Init(object sender, EventArgs e) { //Recreate Controls RecreateControls("lblName", "Label"); RecreateControls("txtValue", "TextBox"); RecreateControls("btnAddNew", "Button"); } protected void btnAdd_Click(object sender, EventArgs e) { int cnt = FindOccurence("txtValue"); CreateLabel("lblName_" + Convert.ToString(cnt + 1)); CreateTextBox("txtValue_" + Convert.ToString(cnt + 1)); CreateButton("btnAddNew_" + Convert.ToString(cnt + 1)); //ClientScript.RegisterClientScriptBlock(this.GetType(), "Alert", // "<script type = 'text/javascript'>alert('" + ID + // " fired OnTextChanged event5');</script>"); } private int FindOccurence(string substr) { string reqstr = Request.Form.ToString(); return ((reqstr.Length - reqstr.Replace(substr, "").Length) / substr.Length); } private void CreateTextBox(string ID) { TextBox txt = new TextBox(); txt.ID = ID; trGenerate.Controls.Add(txt); Label lblInstance = new Label(); lblInstance.Width = 10; lblInstance.Height = 20; trGenerate.Controls.Add(lblInstance); } private void CreateLabel(string ID) { Label lblInstance = new Label(); lblInstance.ID = ID; lblInstance.Text = "Name"; lblInstance.Width = 50; trGenerate.Controls.Add(lblInstance); } private void CreateButton(string ID) { Button btnAddtxt = new Button(); btnAddtxt.ID = ID; btnAddtxt.Text = "Add New"; btnAddtxt.Click += new System.EventHandler(btnAdd_Click); btnAddtxt.CausesValidation = true; trGenerate.Controls.Add(btnAddtxt); Literal lt = new Literal(); lt.Text = "<br />"; trGenerate.Controls.Add(lt); } private void RecreateControls(string ctrlPrefix, string ctrlType) { 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 == "TextBox") { CreateTextBox(ctrlID); } if (ctrlType == "Label") { CreateLabel(ctrlID); } if (ctrlType == "Button") { CreateButton(ctrlID); } } } } } } }
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)