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