【问题标题】:How can i create dynamic buttons on button click event (C sharp ASP.NET)?如何在按钮单击事件(C sharp ASP.NET)上创建动态按钮?
【发布时间】:2011-05-01 06:32:20
【问题描述】:

我想在按钮单击事件上创建动态按钮(例如,btnCreateDynamic_Click)。 我尝试在 page_load 事件和 Pre_int 事件上创建动态按钮。它们都在工作,但我想在按钮单击事件中创建它们。我如何在 c# asp.net 中做到这一点?

【问题讨论】:

    标签: c# .net asp.net dynamic controls


    【解决方案1】:

    您在客户端的按钮单击事件将导致页面回发,这将启动 ASP.Net 页面生命周期;

    您在服务器上的按钮单击事件是 PostBackEvent,您应该能够使用在 Load 或 Init 事件中使用的相同方法调用 CreateMyButton()

    【讨论】:

      【解决方案2】:

      一个想法是创建一个按钮列表,您可以在其中存储您在 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);
      

      例如,在 pageLoad 中,您可以执行类似的操作

      foreach(button btn in myDinamicButtonsList){
          form1.Controls.Add(btn));
      }
      
      List<Button> myDinamicButtonsList = new List<Button>();
      

      myDynamicButtonsList 应存储在每次请求后可以检索到的位置。

      编辑: 在页面加载中,您可能会遇到这样的情况:

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

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

      【讨论】:

      • (因为我不熟悉列表)我可以将按钮存储在数组列表中而不是列表中吗?我试过了,但我得到了错误。你能帮忙吗?
      • 你可以这样创建列表: List
      猜你喜欢
      • 2011-09-05
      • 1970-01-01
      • 2014-02-23
      • 2015-04-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-10
      • 1970-01-01
      相关资源
      最近更新 更多