是否可以取消触发事件?

时间:2015-10-16 09:26:41

标签: javascript c# jquery asp.net vb.net

我正在开发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();
        }
    }

是否可以在不使用标志的情况下暂停事件?

1 个答案:

答案 0 :(得分:2)

我想您已将Button1_Click功能与Click工作室中的标准页面设置器的click事件相关联。如果您希望事件处理程序在某些条件下处于活动状态,则必须更加动态地绑定它。

首先需要删除页面设计器中单击事件框中的函数名称。

然后,您可以在页面加载中附加它:

protected void Page_Load(object sender, EventArgs e)
{
    if (condition) { 
        Button1.Click += Button1_Click;
    }
}