2010-10-27 133 views

回答

1

一个想法是创建一个按钮列表,您可以在其中存储您在btnCreateDynamic_click中创建的按钮。

你可以像一个方法:

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; 
     } 

在btnCreateDynamic_click你可以有这样的:

Button b = CreateButton("dinamicBtn"+myDinamicButtonsList.Count.ToString(),"dinamicBtn"+myDinamicButtonsList.Count.ToString()); 
myDinamicButtonsList.add(b); 

,并在页面加载,例如,你可以不喜欢

foreach(button btn in myDinamicButtonsList){ 
    form1.Controls.Add(btn)); 
} 

List<Button> myDinamicButtonsList = new List<Button>(); 

myDinamicButtonsList应该存储在某个地方,以便可以在之后检索它的位置每个请求。

编辑: 在页面加载,你可以有这样的事情:

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)); 
} 

我没有测试,但它应该工作。

+0

(因为我不熟悉列表)我可以将按钮存储在arraylist而不是List?我试过,但我得到错误。你能帮忙吗? – Prem 2010-10-27 13:15:07

+0

你可以创建这个列表:列表

+0

非常感谢你... !!!有用 – Prem 2010-10-28 04:17:51

2

您在客户端的按钮单击事件将导致页面回发,该页面回发将启动ASP.Net页面生命周期;在服务器上 alt text

你按一下按钮事件是PostBackEvent,你应该能够使用相同的方法调用CreateMyButton()您在加载或初始化事件中使用。