2015-10-16 123 views
-1

我正在開發asp.net web應用程序。在此,對於一個按鈕單擊Page_Load事件觸發之前button_click。所以我的問題是,是否有可能根據一些條件在Page_Load內暫停button_click事件(可以接受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(); 
     } 
    } 

是否可以在不使用標誌的情況下暫停事件?

回答

2

我想你已經將Button1_Click函數與visual studio中的標準頁設備的click事件聯繫起來了。如果您希望事件處理程序在某些情況下處於活動狀態,則必須更加動態地綁定它。

您首先需要刪除頁面設計器中的單擊事件框中的函數名稱。

然後,你可以在你的頁面加載它附加:

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

但是你可以脫離它的Page_Load當頁面加載被解僱從擺在首位的按鈕,點擊回發的結果呢? –

+0

(剛試過) - 是的,你可以! –

+0

可能的話,試試:'Button1.Click - = Button1_Click;' –

相關問題