我正在开发asp.net web应用程序。在此,对于按钮,单击Page_Load
事件将在button_click
之前触发。所以我的问题是,是否可以根据某些条件在button_click
内暂停Page_Load
事件。(c#或Vb.Net解决方案均可接受)。目前我通过使用一些标志值来实现这一点,如下所示:
根据某些条件在页面加载中设置标志值
bool buttonFlag = false;
protected void Page_Load(object sender, EventArgs e)
{
if (condition) { buttonFlag = true; }
}
检查标志值并在标志为真时调用方法(因此仅当标志值为真时才执行操作。)因此我们可以根据页面加载设置的条件跳过操作。
protected void Button1_Click(object sender, EventArgs e)
{
if (buttonFlag)
{//call mymethod
myMethod();
}
}
是否可以在不使用标志的情况下暂停事件?
答案 0 :(得分:2)
我想您已将Button1_Click
功能与Click工作室中的标准页面设置器的click事件相关联。如果您希望事件处理程序在某些条件下处于活动状态,则必须更加动态地绑定它。
首先需要删除页面设计器中单击事件框中的函数名称。
然后,您可以在页面加载中附加它:
protected void Page_Load(object sender, EventArgs e)
{
if (condition) {
Button1.Click += Button1_Click;
}
}