EXTJS Ajax数据请求(一)
来源:互联网 发布:大数据行业待遇怎么样 编辑:程序博客网 时间:2024/06/05 18:27
在页面EAjax01.htm中使用 Ext.Ajax.request从Web Service “WSForExtJS.asmx”中请求数据。
如果EAjax01.htm同WSForExtJS.asmx在同一工程中,
假设EAjax01.htm中请求Web Service的路径使用的是http://IP Address/.../WSForExtJS.asmx”
三种方式来访问。
Web Service文件WSForExtJS.asmx的Source内容:
User.cs的Source:
如果EAjax01.htm同WSForExtJS.asmx在同一工程中,
假设EAjax01.htm中请求Web Service的路径使用的是http://IP Address/.../WSForExtJS.asmx”
在IE中可以使用
http://localhost/JQueryAndExtJSDemo/ExtJSPages/EAjax01.htm
E:\Project\TryProject\JQueryAndExtJSDemo\JQueryAndExtJSDemo\ExtJSPages\EAjax01.htm
三种方式来访问。
但在Firefox和Chrome中只能使用
E:\Project\TryProject\JQueryAndExtJSDemo\JQueryAndExtJSDemo\ExtJSPages\EAjax01.htm
和http://IP Address/JQueryAndExtJSDemo/ExtJSPages/EAjax01.htm 来中方法来访问。
使用http://localhost的方式无法请求到数据。
EAjax01.htm 的Source内容:
<!DOCTYPE HTML><html><head> <title></title> <link href="extjs/resources/css/ext-all.css" rel="stylesheet" type="text/css" /> <script src="extjs/ext-all-debug.js" type="text/javascript"></script></head><script type="text/javascript"> var _webServiceURL = "http://10.40.33.128/POCWBSWebService/"; //var _webServiceURL = "http://localhost/POCWBSWebService/"; //var _webServiceURL = ""; Ext.onReady(function () { Ext.create('Ext.Button', { text: 'Ajax XML String', renderTo: Ext.getBody(), handler: function () { Ext.Ajax.request({ url: _webServiceURL + 'WService/WSForExtJS.asmx/GetUsers01', scriptTag: true, params: { id: 1 }, success: function (response) { var text = response.responseText; alert(text) // process server response here }, failure: function (response, opts) { alert("fail"); alert(response); alert(opts); } }); } }); Ext.create('Ext.Button', { text: 'GetUsers02 Json String', renderTo: Ext.getBody(), handler: function () { Ext.Ajax.request({ url: _webServiceURL + 'WService/WSForExtJS.asmx/GetUsers02', params: { id: 1 }, success: function (response) { var text = response.responseText; alert(text); var data = Ext.JSON.decode(text); //is not json data var dataJson = Ext.JSON.decode(data); //is json data convert 2 times alert(data); alert(dataJson.success); alert(dataJson.total); // process server response here } }); } }); Ext.create('Ext.Button', { text: 'GetUsers03 Json Object', renderTo: Ext.getBody(), handler: function () { Ext.Ajax.request({ url: _webServiceURL + 'WService/WSForExtJS.asmx/GetUsers03', params: { id: 1 }, success: function (response) { var text = response.responseText; alert(text); var data = Ext.JSON.decode(text); // is json data convert 1 times alert(data); alert(data.success); alert(data.total); // process server response here } }); } }); Ext.create('Ext.Button', { text: 'GetUsers04 Json Object', renderTo: Ext.getBody(), handler: function () { Ext.Ajax.request({ url: _webServiceURL + 'WService/WSForExtJS.asmx/GetUsers04', params: { id: 1 }, success: function (response) { var text = response.responseText; alert(text); var data = Ext.JSON.decode(text); // is json data convert 1 times alert(data); alert(data.success); alert(data.total); // process server response here } }); } }); Ext.create('Ext.Button', { text: 'GetUsers05 Json Object From DataTable', renderTo: Ext.getBody(), handler: function () { Ext.Ajax.request({ url: _webServiceURL + 'WService/WSForExtJS.asmx/GetUsers05', params: { id: 1 }, success: function (response) { var text = response.responseText; alert(text); var data = Ext.JSON.decode(text); // is json data convert 1 times alert(data); alert(data.success); alert(data.total); } }); } }); var pagesize = 2; Ext.create('Ext.Button', { text: 'Grid Request Local aspx Mulit Page', renderTo: Ext.getBody(), handler: function () { var itemsPerPage = 2; Ext.define('UserModel', { extend: 'Ext.data.Model', fields: ['name', 'email', 'phone'] }); var userStore = Ext.create('Ext.data.Store', { autoLoad: false, model: 'UserModel', pageSize: itemsPerPage, proxy: { type: 'ajax', url: _webServiceURL + 'WService/ListStore.aspx', reader: { type: 'json', root: 'users', totalProperty: 'total' } } }); userStore.load({ callback: function (r, options, success) { if (success) { for (var i = 0; i < r.length; i++) { var record = r[i]; var v = record.data.name; //alert(v); } } else { alert("fail"); } } }); Ext.create('Ext.grid.Panel', { title: 'Simpsons', store: userStore, columns: [ { header: 'Name', dataIndex: 'name' }, { header: 'Email', dataIndex: 'email', flex: 1 }, { header: 'Phone', dataIndex: 'phone' } ], width: 400, height: 300, dockedItems: [{ xtype: 'pagingtoolbar', store: userStore, // same store GridPanel is using dock: 'bottom', displayInfo: true }], renderTo: Ext.getBody() }); } }); Ext.create('Ext.Button', { text: 'Grid Request Local ashx Mulit Page', renderTo: Ext.getBody(), handler: function () { var itemsPerPage = 2; Ext.define('UserModel', { extend: 'Ext.data.Model', fields: ['name', 'email', 'phone'] }); var userStore = Ext.create('Ext.data.Store', { autoLoad: false, model: 'UserModel', pageSize: itemsPerPage, proxy: { type: 'ajax', url: _webServiceURL + 'WService/ListStore.ashx', reader: { type: 'json', root: 'users', totalProperty: 'total' } } }); userStore.load({ callback: function (r, options, success) { if (success) { for (var i = 0; i < r.length; i++) { var record = r[i]; var v = record.data.name; //alert(v); } } else { alert("fail"); } } }); Ext.create('Ext.grid.Panel', { title: 'Simpsons', store: userStore, columns: [ { header: 'Name', dataIndex: 'name' }, { header: 'Email', dataIndex: 'email', flex: 1 }, { header: 'Phone', dataIndex: 'phone' } ], width: 400, height: 300, dockedItems: [{ xtype: 'pagingtoolbar', store: userStore, // same store GridPanel is using dock: 'bottom', displayInfo: true }], renderTo: Ext.getBody() }); } }); Ext.create('Ext.Button', { text: 'Grid Request Local Web Service Mulit Page', renderTo: Ext.getBody(), handler: function () { var itemsPerPage = 2; Ext.define('UserModel', { extend: 'Ext.data.Model', fields: ['name', 'email', 'phone'] }); var userStore = Ext.create('Ext.data.Store', { autoLoad: false, model: 'UserModel', pageSize: itemsPerPage, proxy: { type: 'ajax', extraParams: { id: 'robbie' }, url: _webServiceURL + 'WService/WSForExtJS.asmx/GetUsers07', method: 'POST', headers: { 'Content-Type': 'application/json;' }, reader: { type: 'json', root: 'users', totalProperty: 'total' } } }); userStore.load({ callback: function (r, options, success) { if (success) { for (var i = 0; i < r.length; i++) { var record = r[i]; var v = record.data.name; //alert(v); } } else { alert("fail"); } } }); var pnlGrid = Ext.create('Ext.grid.Panel', { title: 'Simpsons', store: userStore, columns: [ { header: 'Name', dataIndex: 'name' }, { header: 'Email', dataIndex: 'email', flex: 1 }, { header: 'Phone', dataIndex: 'phone' } ], width: 400, height: 300, dockedItems: [{ xtype: 'pagingtoolbar', store: userStore, // same store GridPanel is using dock: 'bottom', displayInfo: true }], renderTo: Ext.getBody() }); pnlGrid.reconfigure(userStore); } }); var userStore; var pnlGrid; var iClickCount = 0; var userStore; Ext.define('UserModel', { extend: 'Ext.data.Model', fields: ['name', 'email', 'phone'] }); Ext.create('Ext.Button', { text: 'Grid Request Local Web Service Mulit Page Change Source', renderTo: Ext.getBody(), handler: function () { var itemsPerPage = 2; iClickCount = iClickCount + 1; if (!pnlGrid) { userStore = Ext.create('Ext.data.Store', { autoLoad: false, model: 'UserModel', pageSize: itemsPerPage, proxy: { type: 'ajax', url: _webServiceURL + 'WService/WSForExtJS.asmx/GetUsers08', method: 'POST', headers: { 'Content-Type': 'application/json;' }, reader: { type: 'json', root: 'users', totalProperty: 'total' } } }); pnlGrid = Ext.create('Ext.grid.Panel', { title: 'Simpsons', store: userStore, columns: [ { header: 'Name', dataIndex: 'name' }, { header: 'Email', dataIndex: 'email', flex: 1 }, { header: 'Phone', dataIndex: 'phone' } ], width: 400, height: 300, dockedItems: [{ xtype: 'pagingtoolbar', store: userStore, // same store GridPanel is using dock: 'bottom', displayInfo: true }], renderTo: Ext.getBody() }); } else { pnlGrid.getStore().removeAll(); } userStore.currentPage = 1; userStore.on('beforeload', function (store, options) { var new_params = { ClickCount: iClickCount }; Ext.apply(store.proxy.extraParams, new_params); }); pnlGrid.store.load({ params: { start: 0, limit: itemsPerPage} }); } }); });</script><body></body></html>
Web Service文件WSForExtJS.asmx的Source内容:
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Services;using System.Web.Script.Serialization;using System.Web.Script.Services;using System.Data;namespace JQueryAndExtJSDemo.ExtJSPages.WService{ /// <summary> /// Summary description for WSForExtJS /// </summary> [WebService(Namespace = "http://tempuri.org/")] [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] [System.ComponentModel.ToolboxItem(false)] // To allow this Web Service to be called from script, using ASP.NET AJAX, uncomment the following line. [System.Web.Script.Services.ScriptService] public class WSForExtJS : System.Web.Services.WebService { [WebMethod] public string HelloWorld() { return "Hello World"; } [WebMethod] public string GetUsers01() { string _strReturn = "{\"success\": true,\"total\": 2,\"users\": [{ \"name\": \"LisaA\", \"email\": \"lisa@simpsons.com\", \"phone\": \"555-111-1224\" },{ \"name\": \"Bart\", \"email\": \"bart@simpsons.com\", \"phone\": \"555-222-1234\" }]}"; return _strReturn; } [WebMethod] [ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)] public void GetUsers02() { HttpResponse response = HttpContext.Current.Response; string _strReturn = "{\"success\": true,\"total\": 4,\"users\": [{ \"name\": \"LisaA\", \"email\": \"lisa@simpsons.com\", \"phone\": \"555-111-1224\" },{ \"name\": \"Bart\", \"email\": \"bart@simpsons.com\", \"phone\": \"555-222-1234\" }]}"; var jsonSerializer = new JavaScriptSerializer(); string JSONToReturn = jsonSerializer.Serialize(_strReturn); response.Write(JSONToReturn); response.End(); } [WebMethod] [ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)] public void GetUsers03() { List<User> users = new List<User>(); users.Add(new User("LisaA", "lisaA@simpsons.com", "555-111-1224")); users.Add(new User("LisaB", "lisaB@simpsons.com", "555-111-1224")); var jsonSerializer = new JavaScriptSerializer(); string _strReturn = "{\"success\": true,\"total\": 2,\"users\": " + jsonSerializer.Serialize(users) + "}"; HttpResponse response = HttpContext.Current.Response; response.Write(_strReturn); response.End(); } [WebMethod] [ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)] public void GetUsers04() { HttpResponse response = HttpContext.Current.Response; string _strReturn = "{\"success\": true,\"total\": 2,\"users\": [{ \"name\": \"LisaA\", \"email\": \"lisa@simpsons.com\", \"phone\": \"555-111-1224\" },{ \"name\": \"Bart\", \"email\": \"bart@simpsons.com\", \"phone\": \"555-222-1234\" }]}"; response.Write(_strReturn); response.End(); } [WebMethod] [ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)] public void GetUsers05() { DataTable _dt = new DataTable(); DataColumn _dc = new DataColumn(); _dc.ColumnName = "name"; _dt.Columns.Add(_dc); _dc = new DataColumn(); _dc.ColumnName = "email"; _dt.Columns.Add(_dc); _dc = new DataColumn(); _dc.ColumnName = "phone"; _dt.Columns.Add(_dc); DataRow _dr = _dt.NewRow(); _dr["name"] = "LisaA"; _dr["email"] = "lisa@simpsons.com"; _dr["phone"] = "555-111-1224"; _dt.Rows.Add(_dr); _dr = _dt.NewRow(); _dr["name"] = "LisaB"; _dr["email"] = "lisa@simpsons.com"; _dr["phone"] = "555-111-1224"; _dt.Rows.Add(_dr); string _strReturn = ""; int iRowCount = _dt.Rows.Count; if (iRowCount == 0) { _strReturn = "\"\""; } else { _strReturn = CommonClass.DataTable2Json(_dt); } _strReturn = "{\"success\": true,\"total\": " + iRowCount.ToString() + ",\"currpage\":\"1\",\"users\": " + _strReturn + "}"; HttpResponse response = HttpContext.Current.Response; response.Write(_strReturn); response.End(); } [WebMethod] [ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)] public void GetUsers06() { DataTable _dt = new DataTable(); DataColumn _dc = new DataColumn(); _dc.ColumnName = "name"; _dt.Columns.Add(_dc); _dc = new DataColumn(); _dc.ColumnName = "email"; _dt.Columns.Add(_dc); _dc = new DataColumn(); _dc.ColumnName = "phone"; _dt.Columns.Add(_dc); DataRow _dr = _dt.NewRow(); _dr["name"] = "LisaA"; _dr["email"] = "lisaA@simpsons.com"; _dr["phone"] = "555-111-1224"; _dt.Rows.Add(_dr); _dr = _dt.NewRow(); _dr["name"] = "LisaB"; _dr["email"] = "lisaB@simpsons.com"; _dr["phone"] = "555-111-1224"; _dt.Rows.Add(_dr); _dr = _dt.NewRow(); _dr["name"] = "LisaC"; _dr["email"] = "lisaC@simpsons.com"; _dr["phone"] = "555-111-1224"; _dt.Rows.Add(_dr); _dr = _dt.NewRow(); _dr["name"] = "LisaD"; _dr["email"] = "lisaD@simpsons.com"; _dr["phone"] = "555-111-1224"; _dt.Rows.Add(_dr); _dr = _dt.NewRow(); _dr["name"] = "LisaE"; _dr["email"] = "lisaE@simpsons.com"; _dr["phone"] = "555-111-1224"; _dt.Rows.Add(_dr); string _strReturn = ""; int iRowCount = _dt.Rows.Count; if (iRowCount == 0) { _strReturn = "\"\""; } else { _strReturn = CommonClass.DataTable2Json(_dt); } _strReturn = "{\"success\": true,\"total\": " + iRowCount.ToString() + ",\"currpage\":\"1\",\"users\": " + _strReturn + "}"; HttpResponse response = HttpContext.Current.Response; response.Clear(); response.Buffer = true; response.ExpiresAbsolute = DateTime.Now.AddDays(-1); response.AddHeader("pragma", "no-cache"); response.AddHeader("cache-control", ""); response.CacheControl = "no-cache"; //response.ContentType = "text/plain"; response.ContentType = "application/json"; response.Write(_strReturn); response.Flush(); response.End(); } [WebMethod] [ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)] public void GetUsers07() { HttpContext context = HttpContext.Current; context.Response.Clear(); context.Response.Buffer = true; context.Response.ExpiresAbsolute = DateTime.Now.AddDays(-1); context.Response.AddHeader("pragma", "no-cache"); context.Response.AddHeader("cache-control", ""); context.Response.CacheControl = "no-cache"; //context.Response.ContentType = "text/plain"; context.Response.ContentType = "application/json"; string _page = context.Request.Params["page"].ToString(); string _start = context.Request.Params["start"].ToString(); string _limit = context.Request.Params["limit"].ToString(); DataTable _dt = new DataTable(); DataColumn _dc = new DataColumn(); _dc.ColumnName = "name"; _dt.Columns.Add(_dc); _dc = new DataColumn(); _dc.ColumnName = "email"; _dt.Columns.Add(_dc); _dc = new DataColumn(); _dc.ColumnName = "phone"; _dt.Columns.Add(_dc); DataRow _dr = _dt.NewRow(); _dr["name"] = "LisaA"; _dr["email"] = "lisaA@simpsons.com"; _dr["phone"] = "555-111-1224"; _dt.Rows.Add(_dr); _dr = _dt.NewRow(); _dr["name"] = "LisaB"; _dr["email"] = "lisaB@simpsons.com"; _dr["phone"] = "555-111-1224"; _dt.Rows.Add(_dr); _dr = _dt.NewRow(); _dr["name"] = "LisaC"; _dr["email"] = "lisaC@simpsons.com"; _dr["phone"] = "555-111-1224"; _dt.Rows.Add(_dr); _dr = _dt.NewRow(); _dr["name"] = "LisaD"; _dr["email"] = "lisaD@simpsons.com"; _dr["phone"] = "555-111-1224"; _dt.Rows.Add(_dr); _dr = _dt.NewRow(); _dr["name"] = "LisaE"; _dr["email"] = "lisaE@simpsons.com"; _dr["phone"] = "555-111-1224"; _dt.Rows.Add(_dr); string _strReturn = ""; int iRowCount = _dt.Rows.Count; if (iRowCount == 0) { _strReturn = "\"\""; } else { _strReturn = CommonClass.DataTable2Json(_dt, int.Parse(_start), int.Parse(_limit)); } _strReturn = "{\"success\": true,\"total\": " + iRowCount.ToString() + ",\"currpage\":\"1\",\"users\": " + _strReturn + "}"; context.Response.Write(_strReturn); context.Response.Flush(); context.Response.End(); } [WebMethod] [ScriptMethod(UseHttpGet = true, ResponseFormat = ResponseFormat.Json)] public void GetUsers08() { HttpContext context = HttpContext.Current; context.Response.Clear(); context.Response.Buffer = true; context.Response.ExpiresAbsolute = DateTime.Now.AddDays(-1); context.Response.AddHeader("pragma", "no-cache"); context.Response.AddHeader("cache-control", ""); context.Response.CacheControl = "no-cache"; //context.Response.ContentType = "text/plain"; context.Response.ContentType = "application/json"; string _page = context.Request.Params["page"].ToString(); string _start = context.Request.Params["start"].ToString(); string _limit = context.Request.Params["limit"].ToString(); int _clickCount = 1; _clickCount = int.Parse(context.Request.Params["ClickCount"].ToString()); DataTable _dt = new DataTable(); DataColumn _dc = new DataColumn(); _dc.ColumnName = "name"; _dt.Columns.Add(_dc); _dc = new DataColumn(); _dc.ColumnName = "email"; _dt.Columns.Add(_dc); _dc = new DataColumn(); _dc.ColumnName = "phone"; _dt.Columns.Add(_dc); DataRow _dr = _dt.NewRow(); if (_clickCount % 2 !=0) { _dr["name"] = "LisaA"; _dr["email"] = "lisaA@simpsons.com"; _dr["phone"] = "555-111-1224"; _dt.Rows.Add(_dr); _dr = _dt.NewRow(); _dr["name"] = "LisaB"; _dr["email"] = "lisaB@simpsons.com"; _dr["phone"] = "555-111-1224"; _dt.Rows.Add(_dr); _dr = _dt.NewRow(); _dr["name"] = "LisaC"; _dr["email"] = "lisaC@simpsons.com"; _dr["phone"] = "555-111-1224"; _dt.Rows.Add(_dr); _dr = _dt.NewRow(); _dr["name"] = "LisaD"; _dr["email"] = "lisaD@simpsons.com"; _dr["phone"] = "555-111-1224"; _dt.Rows.Add(_dr); _dr = _dt.NewRow(); _dr["name"] = "LisaE"; _dr["email"] = "lisaE@simpsons.com"; _dr["phone"] = "555-111-1224"; _dt.Rows.Add(_dr); } else { _dr["name"] = "LisaG"; _dr["email"] = "lisaG@simpsons.com"; _dr["phone"] = "555-111-1224"; _dt.Rows.Add(_dr); _dr = _dt.NewRow(); _dr["name"] = "LisaH"; _dr["email"] = "lisaG@simpsons.com"; _dr["phone"] = "555-111-1224"; _dt.Rows.Add(_dr); _dr = _dt.NewRow(); _dr["name"] = "LisaK"; _dr["email"] = "lisaG@simpsons.com"; _dr["phone"] = "555-111-1224"; _dt.Rows.Add(_dr); } string _strReturn = ""; int iRowCount = _dt.Rows.Count; if (iRowCount == 0) { _strReturn = "\"\""; } else { _strReturn = CommonClass.DataTable2Json(_dt, int.Parse(_start), int.Parse(_limit)); } _strReturn = "{\"success\": true,\"total\": " + iRowCount.ToString() + ",\"currpage\":\"1\",\"users\": " + _strReturn + "}"; context.Response.Write(_strReturn); context.Response.Flush(); context.Response.End(); } }}
User.cs的Source:
using System;using System.Collections.Generic;using System.Linq;using System.Web;namespace POCWBSWebService.WService{ public class User { private string _name; public string name { get { return _name; } set { _name = value; } } private string _email; public string email { get { return _email; } set { _email = value; } } private string _phone; public string phone { get { return _phone; } set { _phone = value; } } public User() { } public User(string name, string email, string phone) { _name = name; _email = email; _phone = phone; } }}
CommonClass.cs的Source内容:
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Text;namespace JQueryAndExtJSDemo.ExtJSPages.WService{ public class CommonClass { public static string DataTable2Json(System.Data.DataTable dt) { StringBuilder TB = new StringBuilder(); TB.Append("["); for (int i = 0; i < dt.Rows.Count; i++) { TB.Append("{"); for (int j = 0; j < dt.Columns.Count; j++) { TB.Append("\""); TB.Append(dt.Columns[j].ColumnName); TB.Append("\":\""); TB.Append(dt.Rows[i][j].ToString()); TB.Append("\","); } TB.Remove(TB.Length - 1, 1); TB.Append("},"); } TB.Remove(TB.Length - 1, 1); TB.Append("]"); return TB.ToString(); } public static string DataTable2Json(System.Data.DataTable dt, int iStart,int iLimit) { int iRowCount = dt.Rows.Count; int iTotalCalculate = iStart + iLimit; if (iRowCount < iTotalCalculate) { iTotalCalculate = iRowCount; } StringBuilder TB = new StringBuilder(); TB.Append("["); for (int i = iStart; i < iTotalCalculate; i++) { TB.Append("{"); for (int j = 0; j < dt.Columns.Count; j++) { TB.Append("\""); TB.Append(dt.Columns[j].ColumnName); TB.Append("\":\""); TB.Append(dt.Rows[i][j].ToString()); TB.Append("\","); } TB.Remove(TB.Length - 1, 1); TB.Append("},"); } TB.Remove(TB.Length - 1, 1); TB.Append("]"); return TB.ToString(); } /// <summary> /// DataTable to json /// </summary> /// <param name="jsonName">返回json的名称</param> /// <param name="dt">转换成json的表</param> /// <returns></returns> public static string DataTableToJson(string jsonName, System.Data.DataTable dt) { StringBuilder Json = new StringBuilder(); Json.Append("{\"" + jsonName + "\":["); if (dt.Rows.Count > 0) { for (int i = 0; i < dt.Rows.Count; i++) { Json.Append("{"); for (int j = 0; j < dt.Columns.Count; j++) { Json.Append("\"" + dt.Columns[j].ColumnName.ToString() + "\":\"" + dt.Rows[i][j].ToString() + "\""); if (j < dt.Columns.Count - 1) { Json.Append(","); } } Json.Append("}"); if (i < dt.Rows.Count - 1) { Json.Append(","); } } } Json.Append("]}"); return Json.ToString(); } }}
- EXTJS Ajax数据请求(一)
- ExtJS——AJAX请求数据
- ExtJs Ajax的请求
- extjs ajax请求
- ajax请求(一)
- 【转】ExtJs同步ajax请求
- AJAX学习(一)ajax发送请求
- ExtJs 入门教程十八[AJax请求 :Ext.Ajax]
- EXTJS AJAX 解析 XML 数据
- Extjs ajax读取 intraweb数据
- ExtJs.ajax.request的异步请求
- 利用Ajax发送请求(一)
- Ajax请求后台数据
- ajax数据请求
- AJax数据请求处理
- ajax 原生请求数据
- Ajax数据请求
- AJAX 请求数据
- mm_struct
- 退出即复位模式
- 修改数据窗口指定单元的颜色
- PCM (digital audio) plugins
- ubuntu12.04下安装QQ聊天工具
- EXTJS Ajax数据请求(一)
- 高矮胖瘦的模特
- png图片结构分析与加密解密原理
- #include<cstdio>
- Android_launcher的源码详细分析
- Spring如何加载XSD文件(XSD无法读取)
- java.util.Date cannot be cast to java.sql.Timestamp
- 在win32项目中用向导添加MFC类
- 使用odbc连接oracle,sqlserver和access