I\'m trying to add controls dynamically
Code:
AddVisaControl.ascx
<%@ Control Language=\"C#\" AutoEventWireup=\"true\" CodeBehind=\"AddVi
if you remove the static 'i' variable and use a hidenInput to maintain the no of created controls (or a session value) you will be fine.
But I suggest you read the following article to find a better way of creating dynamic controls :
Dynamic control creation in ASP.NET
I will show one examples you can try it your own way
An idea would be to create a list of buttons in which you'd store the buttons you created inbtnCreateDynamic_click
you could have a method like:
private Button CreateButton(string id, string name)
{
Button b = new Button();
b.Text = name;
b.ID = id;
b.Click += new EventHandler(Button_Click);
b.OnClientClick = "ButtonClick('" + b.ClientID + "')";
return b;
}
in btnCreateDynamic_click
you could have something like:
Button b = CreateButton("dinamicBtn"+myDinamicButtonsList.Count.ToString(),"dinamicBtn"+myDinamicButtonsList.Count.ToString());
myDinamicButtonsList.add(b);
and in the pageLoad for example you could do something like
foreach(button btn in myDinamicButtonsList){
form1.Controls.Add(btn));
}
List<Button> myDinamicButtonsList = new List<Button>();
myDinamicButtonsList
should be stored somewhere from where it could be retrieved after each request.
EDIT: In page load you could have something like this:
if(Session["myDinamicButtons"] == null){
List<Button> myDinamicButtonsList = new List<Button>();
Session["myDinamicButtons"] = myDinamicButtonsList;
}
foreach(Button btn in Session["myDinamicButtons"] as List<Button>){
form1.Controls.Add(btn));
}
i didn't tested it but it should work.
also put on some information following may more help..
Your button click event at the client will cause a page postback that will start the ASP.Net Page Life-cycle.
Your button click event on the server is a PostBackEvent
and you should be able to use the same method call CreateMyButton()
that you used in the Load or Init events.
Remove static int i = 0;
Change the method as below
protected void addnewtext_Click(object sender, EventArgs e)
{
AddVisaControl ac = (AddVisaControl)Page.LoadControl("AddVisaControl.ascx");
PlaceHolder1.Controls.Add(ac);
PlaceHolder1.Controls.Add(new LiteralControl("<BR>"));
}