我有以下代码,其中包含页面加载事件处理程序和按钮单击事件处理程序。在页面生命周期中按预期单击按钮之前调用页面加载处理程序。
是否有任何情况会在页面加载处理程序之前调用按钮单击处理程序? (由于某些验证控制等)。
如果保证始终会调用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;
}
}
答案 0 :(得分:4)
保证。在页面加载阶段完成后,始终会调用控件事件处理程序。如需参考,请查看此MSDN article。
答案 1 :(得分:1)
没有在页面加载之前调用按钮单击处理程序的情况,这也是不可能的。在页面加载中,所有控件都被初始化,然后才能调用控件的事件处理程序。
答案 2 :(得分:0)
“任何情况”? ASP.Net回发/页面生命周期场景中的不,如所有答案所述,但由于您已经问过“任何”,您可以尝试(重写和)向客户端公开您的方法边脚本。
虽然不是真的关于“处理程序”或事件,但它是关于方法....
只是一个想法......