可以在Page_Load之前调用按钮单击事件处理程序吗?

时间:2013-05-09 11:27:09

标签: c# asp.net

我有以下代码,其中包含页面加载事件处理程序和按钮单击事件处理程序。在页面生命周期中按预期单击按钮之前调用页面加载处理程序。

是否有任何情况会在页面加载处理程序之前调用按钮单击处理程序? (由于某些验证控制等)。

如果保证始终会调用Page_Load,我不需要在按钮点击处理程序中调用MyGetCount()函数。

public partial class WebForm1 : System.Web.UI.Page
{

    int tableDataCount = 0;

    protected void Page_Load(object sender, EventArgs e)
    {
        string val = System.Security.Principal.WindowsIdentity.GetCurrent().Name;
        //Get the count inside page load
        tableDataCount = MyGetCount();
    }

    protected void btnAction_Click(object sender, EventArgs e)
    {
        Response.Write(tableDataCount.ToString());
    }

    private int MyGetCount()
    {
        int count = 135;
        //Logic for count
        return count;
    }

}

3 个答案:

答案 0 :(得分:4)

保证。在页面加载阶段完成后,始终会调用控件事件处理程序。如需参考,请查看此MSDN article

答案 1 :(得分:1)

没有在页面加载之前调用按钮单击处理程序的情况,这也是不可能的。在页面加载中,所有控件都被初始化,然后才能调用控件的事件处理程序。

答案 2 :(得分:0)

“任何情况”? ASP.Net回发/页面生命周期场景中的,如所有答案所述,但由于您已经问过“任何”,您可以尝试(重写和)向客户端公开您的方法边脚本。

虽然不是真的关于“处理程序”或事件,但它是关于方法....

只是一个想法......