ASP.NET里的事件顺序 |
|
pcplayer99
尊榮會員 發表:146 回覆:790 積分:632 註冊:2003-01-21 發送簡訊給我 |
要显示点了某个控件得到的参数值,不能在Page_Load事件里将这个参数值写到屏幕上。
因为Page_Load事件最先触发,比控件_Click事件更先触发。要获得这个值,需要在控件_Click事件里取得。要显示这个值,需要在控件的 Control.PreRender 事件里去取那个值。(为什么不直接在控件_Click里去显示那个值?因为那是个UserControl控件,Click被封装在了内部。当然也可以公开出来,但这样感觉不太好) IDE的属性/事件窗口里没有控件的Control.PreRender,只能靠自己手动增加事件代码上去。 在C#里应该就是增加一个: protected void YourControl_PreRender(EventArgs e)
{
。。。。。。。
} 然后到事件声明那段代码里去绑定它:this.YourControl.PreRender =YourControl_PreRender 在Delphi里也要自己手动加上去: strict private //在这里声明事件
procedure Page_Load(sender: System.Object; e: System.EventArgs);
procedure UserControl1_PreRender(Sender:TObject; e: System.EventArgs); //<---这就是自己手动加上去的事件的声明 下面的代码前面两条是IDE自动生成的,最后一条是自己手动加上去的:
procedure ProductsView.InitializeComponent;
begin
Include(Self.Button1.Click, Self.Button1_Click1);
Include(Self.Load, Self.Page_Load);
Include(Self.UserControl1.PreRender,Self.UserControl1_PreRender); //《----在这里手动加上去,把前面声明的事件过程和对象绑定
end; 然后再加上事件的实现部分:
procedure ProductsView.UserControl1_PreRender(Sender:TObject; e: System.EventArgs);
begin
Label1.Text:=UserControl1.GetCurrentID;
end;
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |