日期:2014-05-17  浏览次数:20534 次

通过按钮的点击事件创建的新按钮以及事件无法触发问题!
如果是页面初始生成按钮盒事件是没问题的也就是放在(!IsPostBack)之外哪种方式,
但是现在有个需求就是需要点击按钮事件后在创建一个新的按钮盒事件,创建按钮时没问题现在就是这个事件无法触发.

前台页面一个按钮一个事件
C# code

<body>
    <form id="form1" runat="server">
    
    <asp:Button ID="Button1" runat="server" Text="Button" OnClick="Button1_Click" />
    
    </form>
</body>


后台按钮事件
C# code

 protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {

        }
    }


    protected void Button1_Click(object sender, EventArgs e)
    {
        Button btn = new Button();
        btn.ID = Guid.NewGuid().ToString();
        btn.Text = "生成BTN";
        btn.Click += new EventHandler(Button1_Click);
        Page.Form.Controls.Add(btn);
    }



------解决方案--------------------
this.form1.Controls.Add(btn);
------解决方案--------------------
Button btn = new Button();
btn.ID = Guid.NewGuid().ToString();
btn.Text = "生成BTN";
btn.Click += new EventHandler(Button1_Click);
form1.Controls.Add(btn);
------解决方案--------------------
探讨
this.form1.Controls.Add(btn);

------解决方案--------------------
探讨

还是不行哦虽然添加了生成的按钮,但是新生成的按钮的事件没有绑定

------解决方案--------------------
少年,你这是不行的,你点新生成的按钮之后会被页面刷新掉的,要用JQUERY或者AJAX来做
------解决方案--------------------
楼上正解,建议使用前台代码实现。

如果你一定要这么做的话,可以试试在page_load的if (!IsPostBack)之外做一下事情:
1、找出需要绑定Button1_Click事件的按钮
2、循环为之添加事件