Net做的
前台
  function ready() {
        var url = "ajax/default.aspx";
        var sm = new Ext.grid.CheckboxSelectionModel();        var cm = new Ext.grid.ColumnModel
        ([
            sm, new Ext.grid.RowNumberer({ header: "序号", width: 50 }),
            { header: "编号", dataIndex: "ID", width: 50 },
            { header: "标题", dataIndex: "TypeCName", width: 100, editor: new Ext.form.TextField() },           
            { header: "状态", dataIndex: "DelFlag", width: 100, renderer: function(value) { if (value == false) { return "显示"; } else { return "隐藏"; } } }
        ]);
        cm.defaultSortable = true;
        var fields =
        [
            { name: "ID" },
            { name: "TypeCName" },
            { name: "DelFlag" }
        ];
        var store = new Ext.data.Store
        ({
            proxy: new Ext.data.HttpProxy({ url: url }),
            reader: new Ext.data.JsonReader({ totalProperty: "totalPorperty", root: "root", fields: fields })
        });        var pagingBar = new Ext.PagingToolbar
        ({
            displayInfo: true, emptyMsg: "没有数据显示", displayMsg: "显示从{0}条数据到{1}条数据,共{2}条数据",
            store: store,
            pageSize: 5
        });
        var grid = new Ext.grid.GridPanel
        ({
            id: "MenuGridPanel",
            renderTo: document.body,
            layout: "fit",
            frame: true,
            border: true,
            width: 600,
            height: 450,
            autoScroll: true,
            store: store,
            sm: sm,
            cm: cm,
            viewConfig: { forceFit: true },
            title: 'Ext--显示列表',
            bbar: pagingBar
        });
        store.load({ params: { start: 0, limit: 5} });
        
后台jsonData.aspx代码
   IList<MainType> mainTypeList = null;
        int pageSize = 20;
        int start = 0;
        string field, asc_desc;
        public IList<MainType> MainTypeList
        {
            get
            {
                if (mainTypeList == null)
                {
                    mainTypeList = new List<MainType>();
                    string sql = string.Format("select top {0} * from MainType where id not in(select top {1} id from MainType order by id) order by id",pageSize,start);
                    DataSet ds = Access.DataSet(sql);
                    if (ds != null && ds.Tables[0].Rows.Count > 0)
                    {
                        foreach (DataRow row in ds.Tables[0].Rows)
                        {
                            MainType mt = new MainType();
                            mt.ID = Convert.ToString(row["ID"]);
                            mt.PID = Convert.ToString(row["PID"]);
                            mt.DelFlag = Convert.ToBoolean(row["DelFlag"]);
                            mt.TypeCName = Convert.ToString(row["TypeCName"]);
                            mt.AddDate = Convert.ToDateTime(row["AddDate"]);
                            mainTypeList.Add(mt);
                        }
                    }
                }
                return mainTypeList;
            }
        }        protected void Page_Load(object sender, EventArgs e)
        {
            #region 分页
          
            if (string.IsNullOrEmpty(Request["sort"]))
            {
                field = "ID";
                asc_desc = "asc";
            }
            else
            {
                field = Request["sort"];
                asc_desc = Request["dir"];
            }
            if (!string.IsNullOrEmpty(Request["limit"]))
            {
                pageSize = int.Parse(Request["limit"]);
                start = int.Parse(Request["start"]);
            }
            #endregion
            Select(field, asc_desc, pageSize, start);
        }        void Select(string keyID, string asc_desc, int pageSize, int start)
        {
            string json = "";
            try
            {
                int itemCount = (start + pageSize) > MainTypeList.Count ? MainTypeList.Count : (start + pageSize);
                IList<MainType> pageList = new List<MainType>();
                for (int index = start; index < itemCount; index++)
                {
                    pageList.Add(MainTypeList[index]);
                }
                json = "{totalPorperty:"+MainTypeList.Count+",root:"+JsonConvert.SerializeObject(pageList)+"}";
            }
            catch (Exception ee)
            {
                string error = ee.Message;
            }
            Response.Write(json.ToString());
            Response.End();
        }    }