Ext.data.proxy.Ajax代理

公冶光亮
2023-12-01

    Ext.data.proxy.Ajax代理是一个在应用程序中使用最为广泛的服务端代理,采用Ajax方式通过请求指定的URL来读写数据,但是不能跨域读取数据,如果需要读取跨域数据可以使用Ext.data.proxy.JsonP代理。

Ext.onReady(function ()
{
    //创建数据模型
    Ext.regModel("Person", {
        fileds: ["name", "age"]
    });
    //创建Ajax代理
    var ajaxProxy = new Ext.data.proxy.Ajax({
        url: "/AjaxHandler/personServer.ashx",
        model: "Person",
        reader: "json"
    });
    //创建请求参数对象
    var operation = new Ext.data.Operation({
        action:"read"       //设置请求动作为read
    });
    //发送请求
    ajaxProxy.doRequest(operation, callback);
    //doRequest方法的回调函数
    function callback(operation)
    {
        //获取元素响应数据
        var responseText = operation.response.responseText;
        //获得记录总数
        var totalRecords = operation.response.totalRecords;
        //获得记录数组
        var records = operation.resultSet.records;

        Ext.Msg.alert("提示", "通过Ajax代理读取远程数据,记录总数是:" + totalRecords);
    }
})
其中,personServer.ashx代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace Ext.AjaxHandler
{
    /// <summary>
    /// personServer 的摘要说明
    /// </summary>
    public class personServer : IHttpHandler
    {

        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            string result = "[{ name:\"张三\",age:20},{ name:\"李四\",age:30}]";
            context.Response.Write(result);
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }
}


 类似资料: