2012-02-20 11 views
1

を動作していませんobject senderEventArgs eを持たないように関数を変更してからPage_Loadから呼び出すことができます。正常に動作し、警告が表示されます。JavaScriptがonclickの私がボタンを持っているWebページ(ASP.NET C#)を持っている

私はボタンをクリックすると警告が表示されると予想していますが、それは起こっていません。私はそれが明らかなものだと確信していますが、私はそれを見ません。

+0

なぜOnClientClickを使用しないのですか? –

+0

コードが正常に動作します。 – Asdfg

+0

私はOnClickを使用しています。なぜなら、私たちが使っているサードパーティの予約システムとの接続や現在のセッションをチェックするなど、もっと多くのことが起こるからです。 – Deverill

答えて

1

あなたはこのJavaScriptコードを登録するコードを削除し、代わりに行うことができますサーバー側コード(ポストバック)を実行します。

+0

素晴らしいです、ありがとうございます! – Deverill

3

OnClickの代わりにOnClientClickを使用してください。そして、ページにポストバックを避けるためにreturn falseを追加してください。

<asp:Button ID="btnHide" runat="server" OnClientClick="alert('Hello'); return false;" Text="Hide"/> 
+0

サーバー側では多くの手順が必要です。これを行うと、onclickがないとjsがクリックイベントを処理した後にサーバースクリプトを実行することができますか? – Deverill

+0

OnClick backを追加し、OnClickメソッドにサーバーサイドコードを追加するだけです。ただし、OnClientClickにアラートを残して、falseを返すようにして、ページのポストバックを行い、サーバー側のコードを実行します。これによりアラートポップアップが作成され、[OK]をクリックするとページがポストバックされ、サーバー側が実行されます。 –

2

あなたは、 ClientScript.RegisterClientScriptBlock(メソッドGetType()、 "nameOfScript"、scriptString)を使用して試みることができます。

クリックイベントの前に使用しました。

編集: まだ投稿を編集できませんが、あなたのコードは私にとってもうまく機能します。

状況に応じて、彼はclickイベントでサーバサイドのものをやってみたり、スクリプトを動的にビルドすることもできます。

編集: すでに同じ名前のスクリプトを登録している場合、そのスクリプトは実行されません。 、

UseSubmitBehavior="false" 

はボタンがクライアント側のスクリプトを起動するようになります:この

<asp:Button ID="btnHide" runat="server" 
    OnClick="HidePanel" Text="Hide" OnClientClick="alert('Hello');" 
    UseSubmitBehavior="false" />  

Page.ClientScript.RegisterStartupScript(this.GetType(), "Hello", "<script type=text/javascript> var i = 0;</script>"); 
Page.ClientScript.RegisterStartupScript(this.GetType(), "Hello", "<script type=text/javascript> alert('other hello') </script>"); 
関連する問題