WebForm.aspx 頁面通過 AJAX 訪問WebForm.aspx.cs類中的方法,獲取數據


WebForm.aspx 頁面通過 AJAX 訪問WebForm.aspx.cs類中的方法,獲取數據

WebForm1.aspx 頁面 (原生AJAX請求,寫法一)

  1. <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="IsPostBack.WebForm1" %>  
  2.   
  3. <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">  
  4.   
  5. <html xmlns="http://www.w3.org/1999/xhtml">  
  6. <head runat="server">  
  7.     <title></title>  
  8.     <script src="jquery-1.11.2.js" type="text/javascript"></script>  
  9.     <script type="text/javascript">  
  10.         function btnClick() {  
  11.             var xmlhttp = new XMLHttpRequest();  
  12.             if (!xmlhttp) {  
  13.                 alert("創建xmlhttp對象異常");  
  14.                 return false;  
  15.             }  
  16.   
  17.             xmlhttp.open("POST", "WebForm1.aspx", true);  
  18.             xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");  
  19.   
  20.             xmlhttp.onreadystatechange = function () {  
  21.   
  22.                 if (xmlhttp.readyState == 4) {  
  23.   
  24.                     if (xmlhttp.status == 200) {  
  25.   
  26.                         var str = xmlhttp.responseText; // 通過alert(str)得知 str={"Json":[{"Id":"1","UserName":"張三","Age":"25","Gender":"0"}]}    
  27.                         //debugger;    
  28.                         var obj = $.parseJSON(str); //將str這個字符串轉換成Json對象     
  29.   
  30.                         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來獲得 "張三" 這個值    
  31.   
  32.                         var age = obj.Json[0].Age;  
  33.   
  34.   
  35.                         document.getElementById("name").innerHTML = name;  
  36.                         document.getElementById("age").innerHTML = age;  
  37.   
  38.                     }  
  39.                     else {  
  40.                         alert("ajax服務器錯誤");  
  41.                     }  
  42.                 }  
  43.   
  44.             }  
  45.             xmlhttp.send("id=1");  
  46.   
  47.         }    
  48.     </script>  
  49. </head>  
  50. <body>  
  51.     <form id="form1" runat="server">  
  52.     <div>  
  53.         <table id="t1"border="1px">  
  54.             <tr><td>姓名</td><td>年齡</td></tr>  
  55.             <tr><td id="name"></td><td id="age"></td></tr>  
  56.         </table>  
  57.          <input type="button" onclick="btnClick()"  value="提交"/>  
  58.     </div>  
  59.     </form>  
  60. </body>  
  61. </html>  
 

WebForm1.aspx 頁面 (AJAX請求,寫法二,一般情況下我們用這種)

  1. <head runat="server">  
  2.     <title></title>  
  3.     <script src="jquery-1.11.2.js" type="text/javascript"></script>  
  4.     <script type="text/javascript">  
  5.         function btnClick() {  
  6.             $.ajax({  
  7.                 url: "WebForm1.aspx",  
  8.                 type: "Post",  
  9.                 dataType: "Text",  //請求到服務器返回的數據類型  
  10.                 data: { "id": "2" },  
  11.   
  12.                 success: function (data) {  
  13.   
  14.                     var obj = $.parseJSON(data); //這個數據  
  15.   
  16.                     var name = obj.Json[0].UserName;  
  17.                     var age = obj.Json[0].Age;  
  18.   
  19.                     document.getElementById("name").innerHTML = name;  
  20.                     document.getElementById("age").innerHTML = age;  
  21.                 }  
  22.   
  23.             })  
  24.         }  
  25.     </script>  
  26. </head>  
  27. <body>  
  28.     <form id="form1" runat="server">  
  29.     <div>  
  30.         <table id="t1"border="1px">  
  31.             <tr><td>姓名</td><td>年齡</td></tr>  
  32.             <tr><td id="name"></td><td id="age"></td></tr>  
  33.         </table>  
  34.          <input type="button" onclick="btnClick()"  value="提交"/>  
  35.     </div>  
  36.     </form>  
  37. </body>  
  38. </html>  
 



 

WebForm1.aspx.cs

[csharp]  view plain  copy
 
 在CODE上查看代碼片派生到我的代碼片
  1. using System;  
  2. using System.Collections.Generic;  
  3. using System.Linq;  
  4. using System.Web;  
  5. using System.Web.UI;  
  6. using System.Web.UI.WebControls;  
  7. using System.Data.SqlClient;  
  8. using System.Data;  
  9.   
  10. namespace IsPostBack  
  11. {  
  12.     public partial class WebForm1 : System.Web.UI.Page  
  13.     {  
  14.         protected void Page_Load(object sender, EventArgs e)  
  15.         {  
  16.             string id = Request["id"]; //如果不是通過ajax 請求提交數據 就不會取到這個id ,所以此時的id 為null。但是如果是通過ajax請求提交數據,因為提交數據中有提交id,所以就能夠取到這個id ,此時的id就有值了。  
  17.   
  18.             if (!string.IsNullOrEmpty(id)) // 如果不是通過ajax 請求提交數據 就不會進入花括號來調用GetUserData(string id) 方法  
  19.             {  
  20.   
  21.                 GetUserData(id); //如果是通過ajax請求提交數據,就會進入花括號來調用GetUserData(string id) 方法  
  22.             }  
  23.               
  24.         }  
  25.   
  26.         void GetUserData(string id)  
  27.         {  
  28.             DataTable dt= SqlHelper.ExecuteDataTable("select * from T_User where id=@id", new SqlParameter("id", id));  
  29.             string data= DataTableConvertJson.DataTableToJson("Json", dt);  
  30.   
  31.             Response.Write(data);  
  32.             Response.End(); //將當前所有緩沖的輸出發送到客戶端,停止該頁的執行,如果沒有這一步的話,程序還會往后執行,除了把data輸出到客戶端之外,還會將webForm1.aspx里面的html代碼都輸出到頁面。  
  33.   
  34.                         
  35.   
  36.         }  
  37.     }  
  38. }  

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM