ASP.NET 2.0 中开发的时候默认系统只创建 Page_Load 事件,但是我怎么创建其他事件呢?

zhenjialong 2007-06-05 10:32:38
ASP.NET 2.0 中开发的时候默认系统只创建 Page_Load 事件,但是我怎么创建其他事件呢?

难道只有手写把事件的相关代码一个字一个字打进 .cs 文件中么?没有自动方法么?

我是指
protected void Page_LoadComplete(object sender, EventArgs e)
{
//按道理其他代码应该自动生成,我只要在这里写我的程序就可以了。
//自动生成 LoadComplete 事件的操作该如何进行?
}

我是说,现在这个事件只有 object sender, EventArgs e 两个参数,万一有更多参数呢?我不知道该怎么办?总有自动的方法把?
...全文
227 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhenjialong 2007-06-05
  • 打赏
  • 举报
回复
在“解决方案资源管理器”中
右键单击 .cs 文件
选择 “查看组件设计器”
在“属性”窗口会显示“_Default System.Web.UI.Page”
单击那个闪电按钮,即“事件”按钮


private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
this.LoadComplete += new System.EventHandler(this._Default_LoadComplete);

}

private void _Default_LoadComplete(object sender, EventArgs e)
{

}

但为什么自动生成的不是 Page_LoadComplete 而是 _Default_LoadComplete 呢?这两个有什么区别呢?
zhenjialong 2007-06-05
  • 打赏
  • 举报
回复
PAGE 对象?

页面本身也是一个控件么?
jxsddboy22 2007-06-05
  • 打赏
  • 举报
回复
切换到视图编辑模式,选一个控件,在属性窗口里找事件列表,双击即可
Jinglecat 2007-06-05
  • 打赏
  • 举报
回复
1.
关于这个问题,你要明白,asp.net 规定了一个页事件处理程序的命名规则,
基本上改方法原型是这样的,

void Page_EventName(object sender, EventArgs e)

因此,如果你定义了方法
void Page_Init(object sender, EventArgs e)
void Page_Load(object sender, EventArgs e)
void Page_PreSender(object sender, EventArgs e)
asp。net 编译器会自动蒋这三个方法绑定到对应的事件委托上(这里是事件Init,Load,PreSender)

2.
当然你可以使用重载方式,记住一定要调用基类的处理程序,否则会出现不可预期的问题,如
void OnInit(EventArgs e)
{
base.OnInit(e);
// your codes
// ....
}

void OnLoad(EventArgs e)
{
base.OnLoad(e);
// your codes
// ....
}

3.
当然,你更可以显示使用事件委托多路广播
this.Load += delegate(object sender, EventArgs e){ // 这里我们使用匿名方法
// your more codes
//...
}
  • 打赏
  • 举报
回复
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load);
this.LoadComplete += new System.EventHandler(this.abc);

}

private void abc(object sender, EventArgs e)
{

}

也是一样的,不是必须 Page_LoadComplete。

另外,你写这个可以使用吗?估计你是使用SP1的“ASP.NET Web应用程序”创建的项目,而不是默认的“Web网站”创建的项目吧。

作为一个可以使用的通用方法,可以使用代码:

public _Default()
{
}

然后你就可以在其中插入任何事件定义了。例如打入“this.LoadComplete+=”然后就自动创建和声明方法接口了。
xtra6714 2007-06-05
  • 打赏
  • 举报
回复
override,[Page_LoadComplete 而是 _Default_LoadComplete]没区别,只是委托的处理的名称不一样而已
lonehare 2007-06-05
  • 打赏
  • 举报
回复
在2.0的框架里,有一点是和1.1不同的,那就是事件的注册,在1.1里,事件是需要注册到委托后才能用的,但2.0省掉了这一步,事件可以直接写到页面中,如<asp:imagebutton ...... OnClick="XXXX">,然后在代码里有这个对应的函数 XXX 就可以运行到了。

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧