2017-08-24 11 views
0

このシナリオがあります。これはフロントエンドのasp:buttonコンポーネントです。OnClientClickからtrueを返すとOnClickコードビハインドメソッドを実行します。javascript関数

<asp:Button ID="btnNewsAdd" runat="server" Text="Edit current news item" OnClientClick="return Confirm();" OnClick="btnNewsAdd_Click" UseSubmitBehavior="false"/> 

これは、Javascriptのです:「btnNewsAdd」ボタンをクリックする必要があり

<script type="text/javascript"> 
function Confirm() { 
    var result = window.confirm('Are you sure?'); 
     if (result == true) 
     return true; 
     else 
     return false;   
} 
</script> 

ユーザー、Javascriptが解雇されるべきで、yesまたはnoオプションを使用して、ダイアログボックスがポップアップ表示されます。 yesをクリックするとtrueが返され、noがfalseを返します。 trueが返された場合、バックエンドのASP.Netメソッド:btnNewsAdd_Clickが発生するはずです。それは15分前まで働いていた。デバッグ時に、JSは私が自分で作成したものではないtrue lineとheadsinto javascriptファイルを返します。ただし、バックエンドメソッドは起動しません。

「ソース」セクションで、HTMLが以下に変換されていることに気付きました。表示されるように、OnClickとOnClientClickは自動的にOnClickにマージされます。これは自動であったので、それが問題なのかその一部なのか分かりません。

<input type="button" name="ctl00$MainContent$btnNewsAdd" value="Edit current news item" onclick="return Confirm();__doPostBack(&#39;ctl00$MainContent$btnNewsAdd&#39;,&#39;&#39;)" id="MainContent_btnNewsAdd" /> 

私は文字通りそれを回避しようと一日を費やしました。ある時点でそれは機能していて、何も変更せずに作業を停止しました。任意の提案が高く評価されました。

+1

答えが見つかります。https://stackoverflow.com/questions/14058116/confirm-postback-onclientclick-button-asp-net – Rex

+0

ありがとうございました。私は解決策で回答を掲示します。 –

答えて

0

レックスによって指し示さ、そして、このスレッド内のいくつかによって説明されたように:

<asp:Button ID="btnNewsAdd" runat="server" Text="Edit current news item" OnClick="btnNewsAdd_Click" OnClientClick="if (!Confirm()) return false;"/> 

とJavaScriptに:のボタンを変更することによりSee other thread

<script type="text/javascript"> 
function Confirm() { 
    return confirm("Are you sure?");   
} 
</script> 

問題です解決される。

関連する問題