2017-06-01 86 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

我该怎么做? –