• 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","UserName":"张三","Age":"25","Gender":"0"}] 这个数组,数组里只有一个值,即:{"Id":"1","UserName":"张三","Age":"25","Gender":"0"}   所以obj.Json[0]的值就是{"Id":"1","UserName":"张三","Age":"25","Gender":"0"} ; 而这个{"Id":"1","UserName":"张三","Age":"25","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代码都输出到页面。  
      
                            
      
            }  
        }  
    }  
  • 相关阅读:
    加密,解密Web.Config
    Asp.Net在SqlServer中的图片存取技术
    获得定长字符串
    Response.redirect到一个新页面时,保证不是缓存的方法
    从MapX到MapXtreme2004[12]SearchNearest!
    电子签名实现的思路、困难及解决方案
    LegacyText的复制的Bug
    从MapX到MapXtreme2004[11]坐标概论
    水晶报表的导出和打印
    水晶报表文本在web中无法两端对齐
  • 原文地址:https://www.cnblogs.com/yellowcool/p/7497231.html
Copyright © 2020-2023  润新知