欢迎来到天天文库
浏览记录
ID:9801693
大小:80.50 KB
页数:13页
时间:2018-05-10
《aspnet页面中动态增加的控件、添加事件》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、ASP.NET页面中动态增加的控件、添加事件/--------------------------利用计数器实现动态button的累加---------------------------------/在ASP.NET中动态创建一个控件总是不那么顺利,特别是当对页面的LifeCycle不是那么了然的情况下!这里简单描述一下要求,然后提供一个解决方案,大家看看有没有更好的Idea,如果有的话就是我的大幸了,呵呵!要求:页面上有一个Add按钮,每点击一次该按钮,页面上动态创建一个WebPartZone!
2、提醒:WebPartZone只能在OnInit或之前才能创建,否则报异常!大家都知道,按钮的点击事件是在RaisePostbackEvent时触发的,这意味着点击事件在OnLoad阶段之后才执行,远远落后于OnInit阶段,而且ViewState在OnLoad时才准备好,OnInit以及之前的阶段根本就不能使用ViewState!如果试图在按钮点击事件里面创建WebPartZone等控件,唯一的后果就是页面出错;而如果在OnInit里面创建控件,由于ViewState没有准备好,那么有些数据比如当前
3、需要创建的个数(存在ViewState里面)就无法获得!目前对这个问题我还没有找到什么好的解决方案,经过实验,勉强得出一个不怎么优雅的方案,就是利用HiddenField保存数据,然后直接使用Request.Form["XXX"]在OnInit阶段取得数据;而判断是否点击按钮也是通过Request.Form是否存在对应数据来判断的!废话不多说了,大家看看代码吧!privatevoidPage_Load(objectsender,System.EventArgse){ButtonButton1=new
4、Button();Button1.CommandArgument="b1";Button1.Text="Btn1";Button1.Command+=newCommandEventHandler(this.OnButton);PlaceHolder1.Controls.Add(Button1);ButtonButton2=newButton();Button2.CommandArgument="b2";Button2.Text="Btn2";Button2.Command+=newCommandEv
5、entHandler(this.OnButton);PlaceHolder1.Controls.Add(Button2);Controlc3=ParseControl("");//将字符串转换成web控件Controlc4=ParseControl("6、ndname='Btn'commandargument='b4'runat='server'/>");PlaceHolder1.Controls.Add(c3);PlaceHolder1.Controls.Add(c4);ButtonmyBut=(Button)Page.FindControl("Button3");myBut.Command+=newCommandEventHandler(this.OnButton);ButtonmyBut2=(Button)Page.FindControl("B7、utton4");myBut2.Command+=newCommandEventHandler(this.OnButton);}publicvoidOnButton(ObjectSender,CommandEventArgse){switch(e.CommandArgument.ToString().ToLower()){case"b1":Label1.Text="Button1";break;case"b2":Label1.Text="Button2";break;case"b3":Label1.8、Text="Button3";break;case"b4":Label1.Text="Button4";break;};}privatevoidPage_Load(objectsender,System.EventArgse){ButtonButton1=newButton();Button1.CommandArgument="b1";Button1.Text="Btn1";Button1.Command+=newCommandEventHandler(this.On
6、ndname='Btn'commandargument='b4'runat='server'/>");PlaceHolder1.Controls.Add(c3);PlaceHolder1.Controls.Add(c4);ButtonmyBut=(Button)Page.FindControl("Button3");myBut.Command+=newCommandEventHandler(this.OnButton);ButtonmyBut2=(Button)Page.FindControl("B
7、utton4");myBut2.Command+=newCommandEventHandler(this.OnButton);}publicvoidOnButton(ObjectSender,CommandEventArgse){switch(e.CommandArgument.ToString().ToLower()){case"b1":Label1.Text="Button1";break;case"b2":Label1.Text="Button2";break;case"b3":Label1.
8、Text="Button3";break;case"b4":Label1.Text="Button4";break;};}privatevoidPage_Load(objectsender,System.EventArgse){ButtonButton1=newButton();Button1.CommandArgument="b1";Button1.Text="Btn1";Button1.Command+=newCommandEventHandler(this.On
此文档下载收益归作者所有