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

 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中的内容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值