.NET----动态添加控件及事件

来源:互联网 发布:怎么处理淘宝图片保护 编辑:程序博客网 时间:2024/05/16 12:52

 protected void Page_Load(object sender, EventArgs e)
{
    Button btn = new Button();
    btn.ID = "btn_bank_submit";
    btn.Text = "网上支付";
    btn.Click += new EventHandler(btn_bank_submit_Click);
    this.Controls.Add(btn);
}

private void btn_bank_submit_Click(object sender, EventArgs e)
    {
        string a = "快去付钱!";
        ScriptHelp.Alert(a);
    }

这里一定要注意不能在Page_Load中用!IsPostBack判断!
由于动态创建的控件不同于其它已初始化好的服务端控件,不会存在ViewState中。所以每次单击按钮后,刚才创建的按钮会消失,然后从ViewState中读取其他非动态创建的控件值重新创建页面。
若在Page_Load中用!IsPostBack判断,则单击按钮后,程序会绕开!IsPostBack判断后括号内的创建按钮过程。因此单击后毫无反应。

若想即在Page_Load中用!IsPostBack判断,又不影响控件的动态创建,最佳的创建时机是在_Init中动态创建控件。这样,每次创建没页面时,限制性Page_Init中的内容,动态创建好控件后,才执行Page_Load中的内容。

原创粉丝点击