2012-01-20 8 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

ボタンをクリックしてもTextChangedが呼び出されず、値以外のハンドラが呼び出されることはありません。 – adatapost

答えて

3

テキストボックスがポストバックするたびに、その値がチェックされます。以前のサーバーの値と異なる場合は、TextChangedイベントが発生します。私はその周りに何か方法があるとは思わない。

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


} 

ので、それはClientIDをすることができるが、私はそれが一意IDをポストかなり確信している、と:しかし、私はあなたが行うことができると思うと、リンクボタンがクリックされた場合は、ハンドルを無視するという場合の条件を入れていますリンクがTextChangedを処理しないポストバックを引き起こしたことを確認できます。

+0

本当にありがとう、私はそれを試してみます。 –

+0

ありがとうございましたBrainはうまくいきました。 –

関連する問題