分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 网页技术

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

发布时间:2023-09-06 01:09责任编辑:傅花花关键词:Web

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

如果你是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["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代码都输出到页面。 ?????????????????????????????????????} ?????} ?} ?

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

原文地址:http://www.cnblogs.com/yellowcool/p/7497231.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved