WebForm.aspx 页面通过 AJAX 访问WebForm.aspx.cs类中的方法,获取数据

前端之家收集整理的这篇文章主要介绍了WebForm.aspx 页面通过 AJAX 访问WebForm.aspx.cs类中的方法,获取数据前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

WebForm.aspx 页面通过 AJAX 访问WebForm.aspx.cs类中的方法获取数据

WebForm1.aspx 页面 (原生AJAX请求,写法一)

<%@ Page Language=@H_403_6@"@H_403_6@C#@H_403_6@" AutoEventWireup=@H_403_6@"@H_403_6@true@H_403_6@" CodeBehind=@H_403_6@"@H_403_6@WebForm1.aspx.cs@H_403_6@" Inherits=@H_403_6@"@H_403_6@IsPostBack.WebForm1@H_403_6@" %>  
  
<!DOCTYPE html PUBLIC @H_403_6@"@H_403_6@-//W3C//DTD XHTML 1.0 Transitional//EN@H_403_6@" @H_403_6@"@H_403_6@http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd@H_403_6@">  
  
<html xmlns=@H_403_6@"@H_403_6@http://www.w3.org/1999/xhtml@H_403_6@">  
<head runat=@H_403_6@"@H_403_6@server@H_403_6@">  
    <title></title>  
    <script src=@H_403_6@"@H_403_6@jquery-1.11.2.js@H_403_6@" type=@H_403_6@"@H_403_6@text/javascript@H_403_6@"></script>  
    <script type=@H_403_6@"@H_403_6@text/javascript@H_403_6@">  
        function btnClick() {  
            var xmlhttp = new XMLHttpRequest();  
            if (!xmlhttp) {  
                alert(@H_403_6@"@H_403_6@创建xmlhttp对象异常@H_403_6@");  
                return false;  
            }  
  
            xmlhttp.open(@H_403_6@"@H_403_6@POST@H_403_6@",@H_403_6@"@H_403_6@WebForm1.aspx@H_403_6@",true);  
            xmlhttp.setRequestHeader(@H_403_6@"@H_403_6@Content-Type@H_403_6@",@H_403_6@"@H_403_6@application/x-www-form-urlencoded@H_403_6@");  
  
            xmlhttp.onreadystatechange = function () {  
  
                if (xmlhttp.readyState == 4) {  
  
                    if (xmlhttp.status == 200) {  
  
                        var str = xmlhttp.responseText; // 通过alert(str)得知 str={"Json":[{"Id":"1","UserName":"张三","Age":"25","Gender":"0"}]}    
                        //debugger;    
                        var obj = $.parseJSON(str); //将str这个字符串转换成Json对象     
  
                        var name = obj.Json[0].UserName; //obj.Json取到的是[{"Id":"1","Gender":"0"}] 这个数组,数组里只有一个值,即:{"Id":"1","Gender":"0"}   所以obj.Json[0]的值就是{"Id":"1","Gender":"0"} ; 而这个{"Id":"1","Gender":"0"} 是一个对象,所以可以通过 .UserName来获得 "张三" 这个值    
  
                        var age = obj.Json[0].Age;  
  
  
                        document.getElementById(@H_403_6@"@H_403_6@name@H_403_6@").innerHTML = name;  
                        document.getElementById(@H_403_6@"@H_403_6@age@H_403_6@").innerHTML = age;  
  
                    }  
                    else {  
                        alert(@H_403_6@"@H_403_6@ajax服务器错误@H_403_6@");  
                    }  
                }  
  
            }  
            xmlhttp.send(@H_403_6@"@H_403_6@id=1@H_403_6@");  
  
        }    
    </script>  
</head>  
<body>  
    <form id=@H_403_6@"@H_403_6@form1@H_403_6@" runat=@H_403_6@"@H_403_6@server@H_403_6@">  
    <div>  
        <table id=@H_403_6@"@H_403_6@t1@H_403_6@"border=@H_403_6@"@H_403_6@1px@H_403_6@">  
            <tr><td>姓名</td><td>年龄</td></tr>  
            <tr><td id=@H_403_6@"@H_403_6@name@H_403_6@"></td><td id=@H_403_6@"@H_403_6@age@H_403_6@"></td></tr>  
        </table>  
         <input type=@H_403_6@"@H_403_6@button@H_403_6@" onclick=@H_403_6@"@H_403_6@btnClick()@H_403_6@"  value=@H_403_6@"@H_403_6@提交@H_403_6@"/>  
    </div>  
    </form>  
</body>  
</html>  

WebForm1.aspx 页面 (AJAX请求,写法二,一般情况下我们用这种)

<head runat=@H_403_6@"@H_403_6@server@H_403_6@">  
    <title></title>  
    <script src=@H_403_6@"@H_403_6@jquery-1.11.2.js@H_403_6@" type=@H_403_6@"@H_403_6@text/javascript@H_403_6@"></script>  
    <script type=@H_403_6@"@H_403_6@text/javascript@H_403_6@">  
        function btnClick() {  
            $.ajax({  
                url: @H_403_6@"@H_403_6@WebForm1.aspx@H_403_6@",type: @H_403_6@"@H_403_6@Post@H_403_6@",dataType: @H_403_6@"@H_403_6@Text@H_403_6@",//请求到服务器返回的数据类型  
                data: { @H_403_6@"@H_403_6@id@H_403_6@": @H_403_6@"@H_403_6@2@H_403_6@" },success: function (data) {  
  
                    var obj = $.parseJSON(data); //这个数据  
  
                    var name = obj.Json[0].UserName;  
                    var age = obj.Json[0].Age;  
  
                    document.getElementById(@H_403_6@"@H_403_6@name@H_403_6@").innerHTML = name;  
                    document.getElementById(@H_403_6@"@H_403_6@age@H_403_6@").innerHTML = age;  
                }  
  
            })  
        }  
    </script>  
</head>  
<body>  
    <form id=@H_403_6@"@H_403_6@form1@H_403_6@" runat=@H_403_6@"@H_403_6@server@H_403_6@">  
    <div>  
        <table id=@H_403_6@"@H_403_6@t1@H_403_6@"border=@H_403_6@"@H_403_6@1px@H_403_6@">  
            <tr><td>姓名</td><td>年龄</td></tr>  
            <tr><td id=@H_403_6@"@H_403_6@name@H_403_6@"></td><td id=@H_403_6@"@H_403_6@age@H_403_6@"></td></tr>  
        </table>  
         <input type=@H_403_6@"@H_403_6@button@H_403_6@" onclick=@H_403_6@"@H_403_6@btnClick()@H_403_6@"  value=@H_403_6@"@H_403_6@提交@H_403_6@"/>  
    </div>  
    </form>  
</body>  
</html>  

WebForm1.aspx.cs

如果你是try...catch里面使用了Response.End()的话,会被捕捉到一个异常:线程被中止" 解决方法:请点击
using System;  
using System.Collections.Generic;  
using System.Linq;  
using System.Web;  
using System.Web.UI;  
using System.Web.UI.WebControls;  
using System.Data.sqlClient;  
using System.Data;  
  
namespace IsPostBack  
{  
    public partial class WebForm1 : System.Web.UI.Page  
    {  
        protected void Page_Load(object sender,EventArgs e)  
        {  
            string id = Request[@H_403_6@"@H_403_6@id@H_403_6@"]; //如果不是通过ajax 请求提交数据 就不会取到这个id ,所以此时的id 为null。但是如果是通过ajax请求提交数据,因为提交数据中有提交id,所以就能够取到这个id ,此时的id就有值了。  
  
            if (!string.IsNullOrEmpty(id)) // 如果不是通过ajax 请求提交数据 就不会进入花括号来调用GetUserData(string id) 方法  
            {  
  
                GetUserData(id); //如果是通过ajax请求提交数据,就会进入花括号来调用GetUserData(string id) 方法  
            }  
              
        }  
  
        void GetUserData(string id)  
        {  
            DataTable dt= sqlHelper.ExecuteDataTable(@H_403_6@"@H_403_6@select * from T_User where id=@id@H_403_6@",new sqlParameter(@H_403_6@"@H_403_6@id@H_403_6@",id));  
            string data= DataTableConvertJson.DataTableToJson(@H_403_6@"@H_403_6@Json@H_403_6@",dt);  
  
            Response.Write(data);  
            Response.End(); //将当前所有缓冲的输出发送到客户端,停止该页的执行,如果没有这一步的话,程序还会往后执行,除了把data输出到客户端之外,还会将webForm1.aspx里面的HTML代码输出页面
  
                        
  
        }  
    }  
}  

猜你在找的Ajax相关文章