首页 > 其他 > 详细

利用JqGrid结合ashx显示列表之一

时间:2014-04-14 11:19:59      阅读:410      评论:0      收藏:0      [点我收藏+]

最近项目决定运用JqGrid列表控件显示相关数据,以前接触比较多还是easyui和Ext.Net的列表控件,文章简单写的小实例进行一个总结;

1:引入相关的JS及CSS文件,JqGrid目前可以利用Jquery UI的皮肤:

    <link href="css/ui-lightness/jquery-ui-1.10.4.min.css" rel="stylesheet" type="text/css" />
    <link href="css/ui.jqgrid.css" rel="stylesheet" type="text/css" />
    <script src="js/jquery-1.7.2.min.js" type="text/javascript"></script>
    <script src="js/i18n/grid.locale-cn.js" type="text/javascript"></script>
    <script src="js/jquery.jqGrid.min.js" type="text/javascript"></script>

2:Html签标(一个用于列表显示 一个用于分页的存放):

bubuko.com,布布扣
<body>
    <form id="form1" runat="server">
    <table id="list">
    </table>
    <div id="pager3">
    </div>
    </form>
</body>
bubuko.com,布布扣

3:JS内容:

bubuko.com,布布扣
    <script type="text/javascript">
        $(function () {
            $("#list").jqGrid({
                url: HandlerTest.ashx,
                datatype: "json",
                mtype: "GET",
                colNames: [ID, UserName],
                colModel: [
                            { name: ID, index: ID, width: 20 },
                            { name: UserName, index: UserName, width: 80 }

                ],
                rowNum: 10,
                loadonce: true,
                sortname: ID,
                viewrecords: true,
                sortorder: desc,
                caption: "客户列表",
                jsonReader: {
                    repeatitems: false,
                    root: function (obj) { return obj.rows; },
                    page: function (obj) { return obj.page; },
                    total: function (obj) { return obj.total; },
                    records: function (obj) { return obj.records; }
                }
            }).navGrid("#pager3", { edit: false, add: false, del: false });
        });
    </script>
bubuko.com,布布扣

上面的代码可以查看jqGrid相关属性说明,其中比较重要的jsonReader,刚开始没有编写这个导致数据一直显示不出来;JqGrid对数据的显示格式要求比较严格,

例如下面这个是一个比较准确的JSON格式显示;其属性分别代码分页的相关属性及数据的显示格式;

bubuko.com,布布扣
{
    "page": "1",
    "total": "10",
    "records": "10",
    "rows": [
        {
            "ID": 1,
            "UserName": "Wujy"
        },
        {
            "ID": 2,
            "UserName": "踏浪帅"
        }
    ]
}
bubuko.com,布布扣

4:后端代码HandlerTest.ashx:

bubuko.com,布布扣
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Script.Serialization;

namespace WebApplication1
{
    /// <summary>
    /// HandlerTest 的摘要说明
    /// </summary>
    public class HandlerTest : IHttpHandler
    {
        public void ProcessRequest(HttpContext context)
        {
            context.Response.ContentType = "text/plain";
            List<ChinaUser> list = new List<ChinaUser>(){new ChinaUser() { ID=1,UserName="Wujy"},
                new ChinaUser() { ID=2,UserName="踏浪帅"}
            };

            GridData model = new GridData();
            model.page = "1";
            model.records = "10";
            model.total = "10";
            model.rows = list;

            JavaScriptSerializer serializer = new JavaScriptSerializer();
            string Resul = serializer.Serialize(model);
            context.Response.Write(Resul);
        }

        public bool IsReusable
        {
            get
            {
                return false;
            }
        }
    }

    public class ChinaUser
    {
        public int ID { set; get; }
        public string UserName { get; set; }
    }

    public class GridData
    {
        public string page { set; get; }

        public string total { get; set; }

        public string records { get; set; }

        public List<ChinaUser> rows { get; set; }
    }
}
bubuko.com,布布扣

通过上面几步就可以显示列表数据;

注意:

1:网上有很多的JSON在线验证是否正确,例如:http://jsonformatter.curiousconcept.com/ http://jsonlint.com/

2:在访问上面的页面时可以通过网络查看器发现其请求的URL为:

/HandlerTest.ashx?_search=false&nd=1397385085506&rows=10&page=1&sidx=ID&sord=desc 其中可以发现它自动带个几个参数,所以后台可以运用上面的参数进行分页显示;

3:JqGrid官网实例地址:www.trirand.com/blog/jqgrid/jqgrid.html

 

感谢您的阅读,坚持每天进步一点点,离成功就更近一步;希望文章对您有所帮助;

利用JqGrid结合ashx显示列表之一,布布扣,bubuko.com

利用JqGrid结合ashx显示列表之一

原文:http://www.cnblogs.com/wujy/p/3662575.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!