在Page_Load之前调用函数

mar*_*cgg 5 c# asp.net

我有一个调用函数A()的按钮

当我点击它时,我希望按顺序进行调用:

A()
Page_Load()
Run Code Online (Sandbox Code Playgroud)

现在它正在做:

Page_Load()
A()
Run Code Online (Sandbox Code Playgroud)

有没有办法解决这个问题,还是仅仅是设计问题而我无能为力?

And*_*mes 16

最简单的方法是使用HTML Submit按钮并在Page_Init中检查每个回发中是否在Form中

public void Page_Init(object o, EventArgs e)
{
     if(!string.IsNullOrEmpty(Request.Form["MyButtonName"]))
     {
          A();
     }
}
Run Code Online (Sandbox Code Playgroud)

在您的ASP.NET代码中:

<Button Type="Submit" Name="MyButtonName" Value="Press Here To Do Stuff Early!" />
Run Code Online (Sandbox Code Playgroud)

我认为这会奏效.

  • 我是讨厌的黑客之王. (2认同)
  • @marcgg thx 表示赞同,看来我需要提高我的沟通技巧,我的解决方案与安德森完美匹配(没有代码可以解释)安德森为您提供示例并成为一项出色的运动:) (2认同)

Run*_* FS 7

在page_load之后调用控件事件(例如按钮的单击事件).在page_load之前,不保证控件完全初始化.如果你真的需要在调用page_load之前根据按钮是否被按下来调用函数你必须检查请求以检查按钮是否被按下(基本上是旧学校ASP)


Jos*_*eph 5

您需要在Page_Init中调用您的函数.Page_Init将在Page_Load之前发生.

这是ASP.NET页面生命周期概述.

  • 但是我希望在按下按钮时调用我的函数,而不是在每个页面加载时调用. (2认同)