2009-06-04 18 views
3

私はASP.NET Webフォームを持っています。初めてフォームを送信すると、SubmitButton_Clickイベントが発生します。2番目のポストバックでASP.NETのClick()イベントが発生しない

フォームは、検証エラーまたは新しい値で再びフォームを送信するためのオプションのいずれかのブラウザに返されます。

フォームが再び無効になると、SubmitButton_Clickイベントは発生しません。 Page_Loadは起動しますが、ボタンは起動しません。

誰かが私がこの動作をサーバー側で見ている理由を知っていますか?

(私はjQueryと検証コントロールのクライアント側を使用していますが、私はそれが問題を引き起こしているとは思わない。私はとにかくそれを言及だろうと思いました)。

編集:

<asp:Button ID="SubmitButton" OnClick="SubmitButton_Click" 
     runat="server" /> 

イベントがないコードでは、コントロールに設定されています。

+0

コードが役立ちます。特に、イベントハンドラの配線方法。 –

答えて

0

は、フォームを送信jQueryのですか?クライアント側で__doPostBack()が呼び出されていない場合(引数が適切である場合)、サーバー側のイベントは発生しません。

+0

Page_Loadが発生すると、フォームはまだサーバーに送信されます。それは私には奇妙に思われるものです。 – y0mbo

+0

Page_Load()は、何らかの理由でページがロードされたときに起動されるので、私の提案を排除するものではありません。あなたが私の提案を除外することができれば、@Joel Coehoornと@ nikmd23もまた見るべき重要なことがあります。 – jrcs3

+0

これはおそらく起こっていることだと思います。検証ルーチンは、__doPostBack()を呼び出す前にフォームを送信するようです。 – y0mbo

0

どのようにイベントハンドラを配線していますか?あなたが二回実行されていない場合(IsPostBackプロパティ)ブロック、それをアップ配線されているよう

ですね...

+0

私にそれを打つ!私はあなたが(=!IsPostBack)だと思います:-) – dariom

+0

いいえ、コードの後ろに配線されていません。 – y0mbo

0

Clickイベントハンドラは、送信ボタンにどのように関連付けられていますか?宣言的にまたはコードで?

それはコードでなら、あなたはこのようなブロックでそれをやっていないことを確認します(

if (!Page.IsPostBack) { 
    submitButton.Click += new EventHandler(submitButton_Click); 
} 

このページは、ポストバックされたときに添付されてからイベントハンドラを防ぐことができますすなわちPage.IsPostBackですtrue)。

2

これは、動的に作成されたコントロールで、ページのライフサイクルの早い段階で作成しないと発生する可能性があります。細かいところは少ししかありませんが、ボタンは動的に作成されますか?