2017-06-01 161 views
0

我正在創建一個網站並使用彈出窗口導出網格數據來優化表格 但我有問題 我創建了一個javascript方法並將其稱爲在asp.net 這裏的客戶端點擊是我的功能服務器點擊事件不會在客戶端點擊事件後觸發在asp.net中返回true

<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 它應該工作完全一樣return confirm()作用onclientclick的任何按鈕 –

+0

我想你可以去做的一種方法是在你的處理函數中'preventDefault'。 –

+0

我該怎麼做? –