如何在按钮单击事件(C sharp ASP.NET)上创建动态按钮?
问题描述:
我想在按钮单击事件(例如,btnCreateDynamic_Click)上创建动态按钮。 我试着在page_load事件和Pre_int事件上创建动态按钮。他们都在工作,但我想在按钮单击事件中创建它们。我如何在c#asp.net中做到这一点?如何在按钮单击事件(C sharp ASP.NET)上创建动态按钮?
答
一个想法是创建一个按钮列表,您可以在其中存储您在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));
}
我没有测试,但它应该工作。
答
您在客户端的按钮单击事件将导致页面回发,该页面回发将启动ASP.Net页面生命周期;在服务器上
你按一下按钮事件是PostBackEvent,你应该能够使用相同的方法调用CreateMyButton()
您在加载或初始化事件中使用。
(因为我不熟悉列表)我可以将按钮存储在arraylist而不是List?我试过,但我得到错误。你能帮忙吗? – Prem 2010-10-27 13:15:07
你可以创建这个列表:列表
非常感谢你... !!!有用 – Prem 2010-10-28 04:17:51