在页面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”
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();
}
}
}