客户端单击事件在asp.net中返回true后,服务器Click事件未触发

时间:2017-06-01 23:47:45

标签: javascript c# asp.net excel

我正在创建一个网站并使用弹出窗口将网格数据导出到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;}",但是当它的真实时,它的服务器点击不起作用 帮帮我如何解决这个问题? 感谢

1 个答案:

答案 0 :(得分: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();
}