C# 如何在按钮单击事件(C sharp ASP.NET)上创建动态按钮?

C# 如何在按钮单击事件(C sharp ASP.NET)上创建动态按钮?,c#,.net,asp.net,dynamic,controls,C#,.net,Asp.net,Dynamic,Controls,我想在按钮单击事件上创建动态按钮(例如,btnCreateDynamic\u click)。 我尝试在page_load事件和Pre_int事件中创建动态按钮。它们都在工作,但我想在button click事件中创建它们。如何在c#asp.net中执行此操作?客户端的按钮单击事件将导致页面回发,从而启动asp.net页面生命周期; 服务器上的按钮单击事件是一个回发事件,您应该能够使用在加载或初始化事件中使用的相同方法调用CreateMyButton()。一个想法是创建一个按钮列表,其中存储在b

我想在按钮单击事件上创建动态按钮(例如,btnCreateDynamic\u click)。
我尝试在page_load事件和Pre_int事件中创建动态按钮。它们都在工作,但我想在button click事件中创建它们。如何在c#asp.net中执行此操作?

客户端的按钮单击事件将导致页面回发,从而启动asp.net页面生命周期;


服务器上的按钮单击事件是一个回发事件,您应该能够使用在加载或初始化事件中使用的相同方法调用
CreateMyButton()

一个想法是创建一个按钮列表,其中存储在btnCreateDynamic\u 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\u单击中,您可以看到如下内容:

Button b = CreateButton("dinamicBtn"+myDinamicButtonsList.Count.ToString(),"dinamicBtn"+myDinamicButtonsList.Count.ToString());
myDinamicButtonsList.add(b);
例如,在pageLoad中,您可以执行以下操作

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

List<Button> myDinamicButtonsList = new List<Button>();
foreach(MyDiNAMIC按钮列表中的按钮btn){
表1.控件添加(btn));
}
List myDinamicButtonsList=新列表();
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));
}
if(会话[“myDinamicButtons”]==null){
List myDinamicButtonsList=新列表();
会话[“myDinamicButtons”]=myDinamicButtons列表;
}
foreach(会话中的按钮btn[“MyDiNAMIC按钮”]作为列表){
表1.控件添加(btn));
}

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

(因为我不熟悉列表)我可以将按钮存储在arraylist而不是list中吗?我试过了,但还是出错了。请您帮忙好吗?您可以创建以下列表:list myDinamicButtonsList=new list();您必须考虑将其存储在何处,以便在每次重新加载页面时都可以访问它。您可以将其添加到会话变量中,如session[“myDinamicButtonsList”]=myDinamicButtonsList;并在每个页面加载时从那里检索它。只是个主意。。