2017-06-01 6 views
0

ウェブサイトを作成していて、グリッドデータをエクスポートするポップアップを使用して シートをExcelに送信しましたが、問題が発生しました JavaScriptメソッドを作成し、ここでasp.net のクライアントのクリック時にここに私の機能クライアントクリックイベント後にサーバクリックイベントが発生しない

<script> 
    function change() { 

     $.ajax({ 
      type: "POST", 
      contentType: "application/json; charset=utf-8", 
      url: "Store/ViewStock.aspx/CountStock", 
      data: "{'fromDate':'" + $('#<%= txtFromDate.ClientID%>').val() + "', 'ToDate':'" + $('#<%= txtToDate.ClientID%>').val() + "'}", 
      dataType: "json", 
      success: function (data) { 
       if (data.d != null) 
        var count = data.d[0].Count; 
       if (count > 0) { 
        $('#emptyDataRow').hide(); 
        return true; 
       } 
       else { 
        $('#emptyDataRow').show(); 
        return false; 
       } 
      }, 
     }); 
    } 

</script> 

そして

は私のボタン

閉じるです

私はOnClientClick="return (!change()){ return false;}"を使用していたが、その真の は、この問題に取り組むためにどのように私を助けたときにそのサーバーのクリックが機能していません? ありがとう

答えて

0

$ .ajaxは非同期関数です。だから、それらの戻り値の呼び出しは動作しません。

なぜchange機能の復帰に関心がありますか?あなただけ行うことができます :

onclientclick="change()" 

はまた、サイドノートとして、私はそれがif文の外であなたの変数を定義する方が良いと思うので、彼らは、下流未定義ではありません。

var count = 0; 
if (data.d != null) 
    count = data.d[0].Count; 
if (count > 0) { 
    $('#emptyDataRow').hide(); 
} 
else { 
    $('#emptyDataRow').show(); 
} 
+0

しかし、私はしたいですこの関数がfalseを返す場合は、サーバーのクリックを無効にしてください 戻り値のように正しく動作するはずです。confirm()は任意のボタンのclientclickです –

+0

あなたのハンドラ関数で 'preventDefault'を実行する方法があります。 –

+0

どうすればいいですか? –

関連する問題