Ajax调用后台方法的几种写法(一)

本文介绍了一种使用Ajax结合jQuery实现加载等待对话框的方法。通过具体的JavaScript代码示例,展示了如何在点击按钮时显示带有加载动画的对话框,并在后台完成异步请求后关闭该对话框。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一种如下:Js部分:
 <script language="javascript" type="text/javascript" src="JScripts/jquery-1.8.3.js"></script>
    <script language="javascript" type="text/javascript" src="JScripts/jquery-ui-1.9.2.custom.min.js"></script>
    <link type="text/css" rel="Stylesheet" href="Css/jquery-ui-1.9.2.custom.min.css" />
    <script language="javascript" type="text/javascript">
        var loadingDialog = $('<div id="dialog" title="" width="100%"><p class="center"><img src="Images/loading.gif"/></p><br/><p class="center">Please wait for a little while.</p></div>');
        function bsl_showLoadingDialog(title) {
            loadingDialog.dialog({
                modal: true,
                title: title,
                width: 400,
                height: 300,
                closeOnEscape: false,
                resizable: false
            });
            loadingDialog.parent().find('.ui-dialog-titlebar-close').hide();
        }

        $(function () {
            $("#btnOK").click(function () {

                $.ajax({
                    type: "POST",
                    async:true,
                    url: "WebForm1.aspx/TestAjax",    //必须是后台的静态方法
                    contentType: "application/json; charset=utf-8",
                    dataType: "json",
                    //  data: "name=John&location=Boston",
                    data:"",
                    beforeSend: function () {
                        bsl_showLoadingDialog("请稍等");
                    },
                    success: function (msg) {
                        $(loadingDialog).dialog("close");
                        alert("Data Saved: " + msg.d);
                    },
                    error: function (err) {
                        $(loadingDialog).dialog("close");
                        alert(err);
                    }
                });
                //禁用按钮的提交 
                return false;
            });
        });
    </script>
页面部分:
  <asp:Button ID="btnOK" runat="server" Text="验证用户"  /> 
后台方法:
  [WebMethod]//从前台调用必须是static方法,且必须加WebMethod
        public static string TestAjax()
        {
          //  lblName.Text = "Hello, Async";
            WebForm1 webForm = new WebForm1();
            if (webForm.lblName != null)   //此处的lblName(Label)为null值,这个方法放在WebForm1的类中
            {
                webForm.lblName.Text = "Hello,Async";
            }
           Thread.Sleep(3000);
            return "true";
        }

局限性:后台的方法必须是静态的,导致就无法使用页面中其他的控件,无法给其他控件赋值。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值