【发布时间】:2014-11-27 01:11:00
【问题描述】:
我有一个类似下面的案例。
protected void Page_Load(object sender, EventArgs e)
{
if (SomeCheck())
{
// Block all other events from happening
}
}
protected void Button1_Click(object sender, EventArgs e)
{
}
protected void Button2_Click(object sender, EventArgs e)
{
}
protected void Button3_Click(object sender, EventArgs e)
{
}
//..
//..
// Other Event Handlers
//..
//..
我有多个事件处理程序,例如此处的按钮单击(在上面的示例中),并且有一个 Page_Load 我想在其中检查某些内容,并根据该检查我想阻止其他事件正在发生。
我怎样才能做到这一点?我在这里使用了正确的事件还是应该对Pre_render 或其他东西进行检查?
更新
我实际上想要一个解决方案,在这种解决方案中,我不必执行任何额外的代码,也不必担心每次添加新的事件处理程序时检查每个事件处理程序上的 bool 变量很快就会在代码维护中变得困难。
【问题讨论】:
-
为什么不设置一个 bool
shouldDoEvent并在每个事件处理程序中检查它? -
我想要一个做就忘记的解决方案,不想担心在我拥有或将来添加的每个事件处理程序中实现该检查。
-
@J.Steen 怎么样?
asp.net是无状态的! -
您可以删除按钮
Button1.onClick -= new EventHandler(Button1_Click);的每个事件处理程序