EXTJS Ajax数据请求(一)

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


    }
}





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值