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;
}
}
}
}