AjaxPro使用之各类型数据(String/List/DataTable)的传递和显示

Default.aspx:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!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>AjaxPro使用之各类型数据(String/List/DataTable)的传递和显示-Mzwu.Com</title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
    <div id="MyDIV"></div>
    <input id="Button1" type="button" onclick="_Default.ReturnString(String_CallBack);" value="ReturnString" />
    <input id="Button2" type="button" onclick="_Default.ReturnModel(Model_CallBack);"  value="ReturnModel" />
    <input id="Button3" type="button" onclick="_Default.ReturnList(List_CallBack);"  value="ReturnList" />
    <input id="Button4" type="button" onclick="_Default.ReturnDataTable(DataTable_CallBack);"  value="ReturnDataTable" />
    <script type="text/javascript">
    //接收字符串数据
    function String_CallBack(returnValue)
    {
        document.getElementById("MyDIV").innerHTML = returnValue.value;
    }
    
    //接收实体数据
    function Model_CallBack(returnValue)
    {
        var obj = returnValue.value;
        document.getElementById("MyDIV").innerHTML = obj["UserName"] + "," + obj["Age"];
    }
    
    //接收数组
    function List_CallBack(returnValue)
    {
        var arrList = returnValue.value;
        for(var i=0;i<arrList.length;i++)
        {
            document.getElementById("MyDIV").innerHTML += arrList[i]["UserName"] + "," + arrList[i]["Age"] + "<br/>";
        }
    }
    
    //接收DataTable
    function DataTable_CallBack(returnValue)
    {
        var table = returnValue.value;
        for(var i=0;i<table.Rows.length;i++)
        {
            document.getElementById("MyDIV").innerHTML += table.Rows[i]["UserName"] + "," + table.Rows[i]["Age"] + "<br/>";
            //for(var j=0;j<table.Columns.length;j++)
            //{
            //    document.getElementById("MyDIV").innerHTML += table.Rows[i][table.Columns[j].Name] + ",";
            //}
            //
            //document.getElementById("MyDIV").innerHTML += "<br/>";
        }
    }
    </script>
    </div>
    </form>
</body>
</html>

Default.aspx.cs:
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Collections.Generic;

public partial class _Default : System.Web.UI.Page
{

    protected void Page_Load(object sender, EventArgs e)
    {
        //注册AjaxPro,括号中的参数是当前的类名
        AjaxPro.Utility.RegisterTypeForAjax(typeof(_Default));
    }

    /// <summary>
    /// 返回字符串
    /// </summary>
    /// <returns></returns>
    [AjaxPro.AjaxMethod]
    public string ReturnString()
    {
        return "URL:http://www.mzwu.com/";
    }

    /// <summary>
    /// 返回实体
    /// </summary>
    /// <returns></returns>
    [AjaxPro.AjaxMethod]
    public UserInfo ReturnModel()
    {
        UserInfo userInfo = new UserInfo("张三",20);
        return userInfo;
    }

    /// <summary>
    /// 返回数组
    /// </summary>
    /// <returns></returns>
    [AjaxPro.AjaxMethod]
    public List<UserInfo> ReturnList()
    {
        List<UserInfo> listUserInfo = new List<UserInfo>();

        listUserInfo.Add(new UserInfo("张三", 20));
        listUserInfo.Add(new UserInfo("李四", 21));
        listUserInfo.Add(new UserInfo("王五", 22));

        return listUserInfo;
    }

    /// <summary>
    /// 返回DataTable
    /// </summary>
    /// <returns></returns>
    [AjaxPro.AjaxMethod]
    public DataTable ReturnDataTable()
    {
        DataTable dt = new DataTable("UserInfo");
        DataColumn dc;
        DataRow dr;

        //---------------------添加字段----------------

        //建立字段1
        dc = new DataColumn();
        dc.DataType = System.Type.GetType("System.Int32");
        dc.ColumnName = "id";
        dc.AutoIncrement = true;//标识
        dc.AutoIncrementSeed = 1;//标识种子
        dc.AutoIncrementStep = 1;//标识递增量
        dt.Columns.Add(dc);
        //建立字段2
        dc = new DataColumn();
        dc.DataType = System.Type.GetType("System.String");
        dc.ColumnName = "UserName";
        dc.AllowDBNull = true;
        dt.Columns.Add(dc);
        //建立字段3
        dc = new DataColumn();
        dc.DataType = System.Type.GetType("System.Int32");
        dc.ColumnName = "Age";
        dc.AllowDBNull = true;
        dt.Columns.Add(dc);
        //设置主键
        DataColumn[] newdc = new DataColumn[1];//可设置多个字段为主键
        newdc[0] = dt.Columns["id"];
        dt.PrimaryKey = newdc;

        //---------------------添加记录----------------

        //记录1
        dr = dt.NewRow();
        dr["UserName"] = "张三";
        dr["Age"] = 20;
        dt.Rows.Add(dr);
        //记录2
        dr = dt.NewRow();
        dr["UserName"] = "李四";
        dr["Age"] = 21;
        dt.Rows.Add(dr);
        //记录3
        dr = dt.NewRow();
        dr["UserName"] = "王五";
        dr["Age"] = 22;
        dt.Rows.Add(dr);

        return dt;
    }
}

#region 用户实体类

/// <summary>
/// 用户实体类
/// </summary>
public class UserInfo
{
    private string _UserName;
    private int _Age;

    public UserInfo(string userName,int age)
    {
        this._UserName = userName;
        this._Age = age;
    }

    /// <summary>
    /// 用户名
    /// </summary>
    public string UserName
    {
        get { return this._UserName;}
        set { this._UserName = value;}
    }

    /// <summary>
    /// 年龄
    /// </summary>
    public int Age
    {
        get { return this._Age;}
        set {this._Age = value;}
    }
}
#endregion


评论: 0 | 引用: 0 | 查看次数: 5560
发表评论
登录后再发表评论!