客户端通过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>

posted on 2009-12-01 11:37  TimeZ  阅读(508)  评论(0编辑  收藏  举报

导航