Click here to Skip to main content
15,887,240 members
Please Sign up or sign in to vote.
0.00/5 (No votes)
See more:
i have 2 button and creting 2 textbox on each button when i click button 1 it add 2 textbox in panel2,panel3 and when i click button 2 it add 2 textbox but in panel3 ,panel ...but problem is that when i clinck button 2 ,button 1 textbox desappear
C#
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data.SqlClient;
using System.Web.UI.HtmlControls;

namespace FinAppCs
{
    public partial class EmiCalculater : System.Web.UI.Page
    {       
        int occor;
        int occor2;
        int Id = 0;
        HtmlTable htbl;
        HtmlTableCell Hdcl;
        HtmlTableRow Hdr;
        HtmlTableRow Hdr2;
        protected void Page_Load(object sender, EventArgs e)
        {
            //recreate();
        }
        protected void btnAdd_Click(object sender, EventArgs e)
        {
              dateamount();
            //recreate2();
        }
        protected void btnReche_Click(object sender, EventArgs e)
        {
           // recreate1();
            ratecheng();
        }
        void dateamount()
        {
            {
                int id;
                HtmlTable htbl = new HtmlTable();
                HtmlTable htbl2 = new HtmlTable();
                if (ViewState["ID"] == null)
                {
                    id = 1;
                }
                else
                {
                    id = Convert.ToInt32(ViewState["ID"]);
                }
                for (int i = 0; i < id; i++)
                {
                    Hdr = new HtmlTableRow();
                    TextBox txtIntdate = new TextBox();
                    txtIntdate.ID = "txtIntdate" + i;
                    txtIntdate.Text = Request.Form[txtIntdate.ClientID];
                    Hdcl = new HtmlTableCell();
                    Hdcl.Controls.Add(txtIntdate);
                    Hdr.Controls.Add(Hdcl);
                    htbl2.Controls.Add(Hdr);
                    Panel2.Controls.Add(htbl2);
                    //second textbox
                    Hdr = new HtmlTableRow();
                    TextBox txtAmnt = new TextBox();
                    txtAmnt.ID = "txtAmnt" + i;
                    txtAmnt.Text = Request.Form[txtAmnt.ClientID];
                    Hdcl = new HtmlTableCell();
                    Hdcl.Controls.Add(txtAmnt);
                    Hdr.Controls.Add(Hdcl);
                    htbl.Controls.Add(Hdr);
                    Panel3.Controls.Add(htbl);

                }
                id++;
                ViewState["ID"] = id;
                //htbl.Controls.Add(Hdr);
                //htbl2.Controls.Add(Hdr);
                //Panel2.Controls.Add(htbl); 
            }
        }
        void ratecheng()
        {
           // recreate();
            int id1;
            HtmlTable htbld = new HtmlTable();
            HtmlTable htbl21 = new HtmlTable();
            if (ViewState["ID1"] == null)
            {
                id1 = 1;
            }
            else
            {
                id1 = Convert.ToInt32(ViewState["ID1"]);
            }
            for (int j = 0; j < id1; j++)
            {
                Hdr2 = new HtmlTableRow();
                TextBox txtInreche = new TextBox();
                txtInreche.ID = "txtInreche" + j;
                txtInreche.Text = Request.Form[txtInreche.ClientID];
                Hdcl = new HtmlTableCell();
                Hdcl.Controls.Add(txtInreche);
                Hdr2.Controls.Add(Hdcl);
                htbl21.Controls.Add(Hdr2);
                Panel4.Controls.Add(htbl21);
                //second textbox
                Hdr2 = new HtmlTableRow();
                TextBox txtrate = new TextBox();
                txtrate.ID = "txtrate" + j;
                txtrate.Text = Request.Form[txtrate.ClientID];
                Hdcl = new HtmlTableCell();
                Hdcl.Controls.Add(txtrate);
                Hdr2.Controls.Add(Hdcl);
                htbld.Controls.Add(Hdr2);
                Panel5.Controls.Add(htbld);

            }
            id1++;
            ViewState["ID1"] = id1;
            //htbl.Controls.Add(Hdr);
            //htbl2.Controls.Add(Hdr);
            //Panel2.Controls.Add(htbl); 
           
        }
      //  void recreate1()
      //  {
      //      {
      //          int id;
      //          HtmlTable htbl = new HtmlTable();
      //          HtmlTable htbl2 = new HtmlTable();
      //          if (ViewState["ID"] == null)
      //          {
      //              id = 1;
      //          }
      //          else
      //          {
      //              id = Convert.ToInt32(ViewState["ID"]);
      //          }
      //          for (int i = 0; i < id; i++)
      //          {
      //              Hdr = new HtmlTableRow();
      //              TextBox txtIntdate = new TextBox();
      //              txtIntdate.ID = "txtIntdate" + i;
      //              txtIntdate.Text = Request.Form[txtIntdate.ClientID];
      //              Hdcl = new HtmlTableCell();
      //              Hdcl.Controls.Add(txtIntdate);
      //              Hdr.Controls.Add(Hdcl);
      //              htbl2.Controls.Add(Hdr);
      //              Panel2.Controls.Add(htbl2);
      //              //second textbox
      //              Hdr = new HtmlTableRow();
      //              TextBox txtAmnt = new TextBox();
      //              txtAmnt.ID = "txtAmnt" + i;
      //              txtAmnt.Text = Request.Form[txtAmnt.ClientID];
      //              Hdcl = new HtmlTableCell();
      //              Hdcl.Controls.Add(txtAmnt);
      //              Hdr.Controls.Add(Hdcl);
      //              htbl.Controls.Add(Hdr);
      //              Panel3.Controls.Add(htbl);

      //          }
      //          //id++;
      //          //ViewState["ID"] = id;
      //          //htbl.Controls.Add(Hdr);
      //          //htbl2.Controls.Add(Hdr);
      //          //Panel2.Controls.Add(htbl); 
      //      }
      //  }
      //void  recreate2()
      //  {
      //       {
      //          int id;
      //          HtmlTable htbl = new HtmlTable();
      //          HtmlTable htbl2 = new HtmlTable();
      //          if (ViewState["ID"] == null)
      //          {
      //              id = 1;
      //          }
      //          else
      //          {
      //              id = Convert.ToInt32(ViewState["ID"]);
      //          }
      //          for (int i = 0; i < id; i++)
      //          {
      //              Hdr = new HtmlTableRow();
      //              TextBox txtIntdate = new TextBox();
      //              txtIntdate.ID = "txtIntdate" + i;
      //              txtIntdate.Text = Request.Form[txtIntdate.ClientID];
      //              Hdcl = new HtmlTableCell();
      //              Hdcl.Controls.Add(txtIntdate);
      //              Hdr.Controls.Add(Hdcl);
      //              htbl2.Controls.Add(Hdr);
      //              Panel2.Controls.Add(htbl2);
      //              //second textbox
      //              Hdr = new HtmlTableRow();
      //              TextBox txtAmnt = new TextBox();
      //              txtAmnt.ID = "txtAmnt" + i;
      //              txtAmnt.Text = Request.Form[txtAmnt.ClientID];
      //              Hdcl = new HtmlTableCell();
      //              Hdcl.Controls.Add(txtAmnt);
      //              Hdr.Controls.Add(Hdcl);
      //              htbl.Controls.Add(Hdr);
      //              Panel3.Controls.Add(htbl);

      //          }
      //          //id++;
      //          //ViewState["ID"] = id;
      //          //htbl.Controls.Add(Hdr);
      //          //htbl2.Controls.Add(Hdr);
      //          //Panel2.Controls.Add(htbl); 
      //      }
      //  }
    }
}
Posted
Updated 31-Jul-13 20:58pm
v2

1 solution

Hi,

In asp.net when postback happen all dynamic controls disappears. To retain dynamic control you have to deal with javascript/jquery.

eg.,
JavaScript
<script>
   $('#button2').click(function(){
       var txt = document.createElement('input');
       txt.setAttribute('type', 'txt');
       txt.setAttribute('id', 'txt1');
       // finally add this txt in your target area. suppose div
       $('#div').appendChild(txt);
   });
</script>
 
Share this answer
 

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900