C# 在同一页面上,当我单击Save_按钮时,首先应该执行Page_Load事件还是btnSave_click按钮?

C# 在同一页面上,当我单击Save_按钮时,首先应该执行Page_Load事件还是btnSave_click按钮?,c#,asp.net,button,pageload,C#,Asp.net,Button,Pageload,在我的Asp.Net Web表单中, 假设我有主页和保存按钮,它在主页上 当我单击保存按钮时,首先执行页面加载事件,然后执行保存按钮执行 我想当我首先点击按钮时,只有按钮才能执行 是正确的还是我的程序工作不正常?正确的做法是先触发load事件,然后触发button事件处理程序。如果只想在开始时执行代码,而不是在任何回发检查都是回发属性时执行代码。通常先执行页面加载,然后执行事件处理程序。因此,您的程序的行为符合设计要求 摘录自MSDN中的页面生命周期: 加载 在加载期间,如果当前请求是回发,则将

在我的
Asp.Net Web表单中
, 假设我有
主页
保存按钮
,它在
主页

当我
单击
保存按钮
时,首先执行
页面加载
事件,然后执行
保存按钮
执行

我想当我首先点击按钮时,只有按钮才能执行


是正确的还是我的程序工作不正常?

正确的做法是先触发load事件,然后触发button事件处理程序。如果只想在开始时执行代码,而不是在任何回发检查都是回发属性时执行代码。

通常先执行页面加载,然后执行事件处理程序。因此,您的程序的行为符合设计要求

摘录自MSDN中的页面生命周期:

加载

在加载期间,如果当前请求是回发,则将使用从视图状态和控件状态恢复的信息加载控件属性

回发事件处理

如果请求是回发,则调用控件事件处理程序。然后,调用所有验证程序控件的Validate方法,该方法设置各个验证程序控件和页面的IsValid属性。(此序列有一个例外:导致验证的事件的处理程序在验证后调用。)

如果您对ASP.NET页面生命周期的详细信息感兴趣,请查看此页


分辨率

如果只在首先请求页面时才需要执行页面加载(或页面上的任何其他方法)中的某些步骤,则可以检查属性,从而使程序按照问题中的描述运行:

public void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        // Steps are only run on initial GET, not when request is a PostBack.
    }
}

如果我在jquery上写代码<代码>$(“#按钮”)。单击(…)
@user3461906:JavaScript代码在客户端上执行,因此在jQuery中执行的操作不会影响ASP.NET页面生命周期,直到它开始回发到服务器。好的,谢谢,@Markus