2012-01-20 46 views
0

我在web用戶控件中有一個文本框。而我訪問它的內容頁面,並添加其文本文本框的文本更改事件在回發應用程序時自動觸發

變化的事件處理程序如下......

protected void Page_PreInit(object sender, EventArgs e) 
{ 
    Find = (TextBox)(Menu1.FindControl("txtTarget")); 
    Find.TextChanged += new EventHandler(Find_TextChanged); 
} 
void Find_TextChanged(object sender, EventArgs e) 
{ 
} 

現在我在同一個web用戶控件一個LinkBut​​ton。當我點擊這個鏈接按鈕時,該文本的文本更改事件會自動觸發。

當點擊鏈接按鈕時,我該如何阻止此事件發生?

+0

當您更改Text屬性的值時,TextChanged事件將被觸發。如果你不想處理它,然後刪除事件處理程序。 – adatapost

+0

但我在其他情況下需要它。當我點擊鏈接按鈕時,我不需要這個事件。 –

+0

Button的單擊不會引發TextChanged並調用處理程序,除非其值已更改。 – adatapost

回答

3

每當文本框發回時,它都檢查其值;如果與以前的服務器值不同,則會觸發TextChanged事件。我不相信有任何方法。不過,我覺得你可以做的就是把一個if條件,如果被點擊的鏈接按鈕,忽略手柄:

void Find_TextChanged(object sender, EventArgs e) 
{ 
    //if link to ignore, exit 
    if (Request.Form.Get("__EVENTTARGET") == lnkLinkToIgnore.UniqueID) 
     return; 


} 

這可能是客戶端ID,但我敢肯定它職位的UniqueID,因此,你可以檢查鏈接是否導致回發不處理TextChanged。

+0

很好,非常感謝,我會嘗試。 –

+0

非常感謝你大腦它工作正常。 –

相關問題