客户端通过Ajax调用后台方法返回DataSet,Ilist,ilist,T,对象 [转帖]
后台
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Data;
using Xy.GamePt.VO;
using Xy.GamePt.BO;
using System.Collections;
public partial class Test : System.Web.UI.Page
{
//添加一个 AjaxPro.HttpSessionStateRequirement 枚举的值到你的 AjaxPro.AjaxMethodAttribute中.
//例如:
//[AjaxPro.AjaxMethod(AjaxPro.HttpSessionStateRequirement.Read)]
//现在你就可以像下面这样存取Session的值了: this.Session["0"].ToString().
//另外一个问题:如何在AjaxMethod中使用Cookie?
//答案是不能使用"this"的引用存取cookie ,你必须使用HttpContext.Current
//例如:
//HttpContext.Current.Request.Cookies[Name].Value.
protected void Page_Load(object sender, EventArgs e)
{
AjaxPro.Utility.RegisterTypeForAjax(typeof(Test));
}
[AjaxPro.AjaxMethod()]
public string GetServerTime()
{
System.Threading.Thread.Sleep(2000);
return DateTime.Now.ToString();
}
[AjaxPro.AjaxMethod()]
public DataSet GetDataSet()
{
DataSet ds = new DataSet();
DataTable dt = new DataTable();
dt.Columns.Add("id", typeof(int));
dt.Columns.Add("parentId", typeof(int));
dt.Columns.Add("name", typeof(string));
dt.Rows.Add(1, 0, "A-DGamename1");
dt.Rows.Add(2, 1, "A-DGamename2");
dt.Rows.Add(3, 1, "A-DGamename3");
dt.Rows.Add(4, 1, "A-DGamename4");
dt.Rows.Add(5, 0, "A-DGamename5");
dt.Rows.Add(6, 5, "A-DGamename6");
dt.Rows.Add(1, 0, "E-HGamename1");
dt.Rows.Add(2, 1, "E-HGamename2");
dt.Rows.Add(3, 1, "E-HGamename3");
dt.Rows.Add(4, 1, "E-HGamename4");
dt.Rows.Add(5, 0, "E-HGamename5");
dt.Rows.Add(6, 5, "E-HGamename6");
ds.Tables.Add(dt);
return ds;
}
[AjaxPro.AjaxMethod()]
public IList<Game> GetGameList()
{
return GameBO.GetGameList();
}
[AjaxPro.AjaxMethod()]
public Game GetGame()
{
return GameBO.GetGame();
}
/// <summary>
/// 返回Ilist
/// </summary>
/// <param name="parameter">脚本字符串参数</param>
/// <param name="arr">脚本数组参数</param>
/// <param name="xiaoxin">脚本对象参数</param>
/// <returns></returns>
[AjaxPro.AjaxMethod()]
public IList GetData(string parameter,string [] arr,object obj)
{
object xxxx = obj;
Hashtable ht = xxxx as Hashtable;
string sss = parameter;
Array aaaa = arr;
//Hashtable ht = arr as Hashtable;
return TestBO.GetIlist();
}
}
前台
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Test.aspx.cs" Inherits="Test" %>
<!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>
</head>
<body>
<form id="form1" runat="server">
<select id="Select1">
<option></option>
</select>
<div id="loadinfo" style="visibility:hidden;position:absolute;left:0px;top:0px;background-color:Red;color:White;">Loading</div>
<input id="Button1" type="button" value="Get StrServerTime" onclick ="javascript:GetTime();void(0)" />
<input id="Button2" type="button" value="DataSet" onclick ="javascript:Change();void(0)" />
<input id="Button3" type="button" value="DataiList" onclick ="javascript:GetIListData();void(0)" />
<input id="Button3" type="button" value="GetGameList" onclick ="javascript:GetGameList();void(0)" />
<input id="Button3" type="button" value="GetGame" onclick ="javascript:GetGame();void(0)" />
<div id="newDG"></div>
<script type="text/javascript" language="javascript">
// loading效果
AjaxPro.onLoading = function(b) {
var a = document.getElementById("loadinfo");
a.style.visibility = b ? "visible" : "hidden";
}
/* 客户端调用返回的字符串--------------------*/
function GetTime() {
// 调用服务端方法
//调用方法:类名.方法名 (参数为指定一个回调函数)
Test.GetServerTime(callback);
}
function callback(res) //回调函数,显示结果
{
alert(res.value);
}
/*-----------------------------------------*/
/* 客户端调用返回的DataSet--------------------*/
function Change() {
Test.GetDataSet(change_callback)
}
function change_callback(response) {
var ds = response.value;
var content = document.getElementById("newDG");
var table = null;
for (var i = 0; i < ds.Tables[0].Rows.length; i++) {
if (i == 0) {
table = ds.Tables[0].Rows[i].name + "<br>";
}
else {
table += ds.Tables[0].Rows[i].name + "<br>";
}
}
content.innerHTML = table;
}
/*----------------------------------------------*/
/* 客户端调用返回的IList--------------------*/
function GetIListData() {
var arr = Array("1", "2", "5", "64", "78");
function User(name, age) {
this.name = name;
this.age = age;
this.canFly = false;
}
var obj = new User("234", "5345");
Test.GetData("sdfsd", arr, obj, GetIListData_callback);
}
function GetIListData_callback(response) {
var ilist = response.value;
var content = document.getElementById("newDG");
var table = null;
for (var i = 0; i < ilist.length; i++) {
if (i == 0) {
table = ilist[i][1] + "|" + ilist[i][2] + "<br>";
}
else {
table += ilist[i][1] + "|" + ilist[i][2] + "<br>";
}
}
content.innerHTML = table;
}
/*----------------------------------------------*/
/* 客户端调用返回的范型GameList--------------------*/
function GetGameList() {
Test.GetGameList(GetGameList_callback)
}
function GetGameList_callback(response) {
var gameList = response.value;
var content = document.getElementById("newDG");
// var table = game.StrGameName;
var table = null;
for (var i = 0; i < gameList.length; i++) {
if (i == 0) {
table = gameList[i].StrGameName + "<br>";
}
else {
table += gameList[i].StrGameName + "<br>";
}
}
content.innerHTML = table;
}
/*----------------------------------------------*/
/* 客户端调用返回的实体Game--------------------*/
function GetGame() {
Test.GetGame(GetGame_callback)
}
function GetGame_callback(response) {
var game = response.value;
var content = document.getElementById("newDG");
var table = game.StrGameName;
content.innerHTML = table;
}
/*----------------------------------------------*/
</script>
</form>
</body>
</html>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· [AI/GPT/综述] AI Agent的设计模式综述