您的位置:首页 > 其它

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

2009-03-24 21:22 253 查看
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中的内容。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: