微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

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

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="IsPostBack.WebForm1" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
    <script src="jquery-1.11.2.js" type="text/javascript"></script>
    <script type="text/javascript">
        function btnClick() {
            var xmlhttp = new XMLHttpRequest();
            if (!xmlhttp) {
                alert("创建XMLhttp对象异常");
                return false;
            }

            xmlhttp.open("POST","WebForm1.aspx",true);
            xmlhttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");

            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("name").innerHTML = name;
                        document.getElementById("age").innerHTML = age;

                    }
                    else {
                        alert("ajax服务器错误");
                    }
                }

            }
            xmlhttp.send("id=1");

        }  
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <table id="t1"border="1px">
            <tr><td>姓名</td><td>年龄</td></tr>
            <tr><td id="name"></td><td id="age"></td></tr>
        </table>
         <input type="button" onclick="btnClick()"  value="提交"/>
    </div>
    </form>
</body>
</html>


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

<head runat="server">
    <title></title>
    <script src="jquery-1.11.2.js" type="text/javascript"></script>
    <script type="text/javascript">
        function btnClick() {
            $.ajax({
                url: "WebForm1.aspx",type: "Post",dataType: "Text",//请求到服务器返回的数据类型
                data: { "id": "2" },success: function (data) {

                    var obj = $.parseJSON(data); //这个数据

                    var name = obj.Json[0].UserName;
                    var age = obj.Json[0].Age;

                    document.getElementById("name").innerHTML = name;
                    document.getElementById("age").innerHTML = age;
                }

            })
        }
    </script>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <table id="t1"border="1px">
            <tr><td>姓名</td><td>年龄</td></tr>
            <tr><td id="name"></td><td id="age"></td></tr>
        </table>
         <input type="button" onclick="btnClick()"  value="提交"/>
    </div>
    </form>
</body>
</html>


WebForm1.aspx.cs

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["id"]; //如果不是通过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("select * from T_User where id=@id",new sqlParameter("id",id));
            string data= DataTableConvertJson.DataTabletoJson("Json",dt);

            Response.Write(data);
            Response.End(); //将当前所有缓冲的输出发送到客户端,停止该页的执行,如果没有这一步的话,程序还会往后执行,除了把data输出到客户端之外,还会将webForm1.aspx里面的HTML代码输出页面。

                      

        }
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐