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”

在IE中可以使用

http://localhost/JQueryAndExtJSDemo/ExtJSPages/EAjax01.htm   
E:\Project\TryProject\JQueryAndExtJSDemo\JQueryAndExtJSDemo\ExtJSPages\EAjax01.htm

http://IP Address/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();        }      }}





原创粉丝点击