最近项目决定运用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签标(一个用于列表显示 一个用于分页的存放):

<body>
<form id="form1" runat="server">
<table id="list">
</table>
<div id="pager3">
</div>
</form>
</body>

3:JS内容:

    <script type="text/javascript">
$(function () {
$("#list").jqGrid({
url: 'HandlerTest.ashx',
datatype: "json",
mtype: "GET",
colNames: ['ID', 'UserName'],
colModel: [
{ name: 'ID', index: 'ID', width: },
{ name: 'UserName', index: 'UserName', width: } ],
rowNum: ,
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>

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

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

{
"page": "",
"total": "",
"records": "",
"rows": [
{
"ID": ,
"UserName": "Wujy"
},
{
"ID": ,
"UserName": "踏浪帅"
}
]
}

4:后端代码HandlerTest.ashx:

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=,UserName="Wujy"},
new ChinaUser() { ID=,UserName="踏浪帅"}
}; GridData model = new GridData();
model.page = "";
model.records = "";
model.total = "";
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; }
}
}

二:(补充)接下来设置复杂表头及双击响应事件;

1:后台代码如下:

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=,UserName="Wujy",PassWord="", Address="厦门", Sex="男"},
new ChinaUser() { ID=,UserName="踏浪帅3",PassWord="", Address="厦门3", Sex="男3"},
new ChinaUser() { ID=,UserName="踏浪帅4",PassWord="", Address="厦门4", Sex="男4"},
new ChinaUser() { ID=,UserName="踏浪帅5",PassWord="", Address="厦门5", Sex="男5"},
new ChinaUser() { ID=,UserName="踏浪帅6",PassWord="", Address="厦门6", Sex="男6"}
}; GridData model = new GridData();
model.page = "";
model.records = "";
model.total = "";
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 string PassWord { get; set; }
public string Sex { get; set; }
public string Address { 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; }
}
}

2:前台代码如下:

<head runat="server">
<title></title>
<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>
<script type="text/javascript">
$(function () {
$("#list").jqGrid({
url: 'HandlerTest.ashx',
datatype: "json",
mtype: "GET",
colNames: ['ID', 'UserName', 'PassWord', 'Address', 'Sex'],
colModel: [
{ name: 'ID', index: 'ID', width: },
{ name: 'UserName', index: 'UserName', width: },
{ name: 'PassWord', index: 'PassWord', width: },
{ name: 'Address', index: 'Address', width: },
{ name: 'Sex', index: 'Sex', width: } ],
rowNum: ,
rowList: [, , ],
loadonce: true,
sortname: 'ID',
viewrecords: true,
sortorder: 'desc',
pager: "#pager3",
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; }
},
ondblClickRow: function () { SelectShow(); }
}).navGrid("#pager3", { edit: false, add: false, del: false }); jQuery("#list").jqGrid('setGroupHeaders', {
useColSpanStyle: true,
groupHeaders: [
{ startColumnName: 'PassWord', numberOfColumns: , titleText: '<em>Info</em>' }
]
}); }); function SelectShow() {
var ID = jQuery("#list").jqGrid('getGridParam', 'selrow');
if (ID) {
alert("您选中的列为:" + ID);
$("#list").trigger("reloadGrid");
}
else {
alert("请选择");
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<table id="list">
</table>
<div id="pager3">
</div>
</form>
</body>
</html>

其中下面的代码就是组成复杂表头(表示从哪一列开始,并有几列在其下面,显示的头部名称):

            jQuery("#list").jqGrid('setGroupHeaders', {
useColSpanStyle: true,
groupHeaders: [
{ startColumnName: 'PassWord', numberOfColumns: , titleText: '<em>Info</em>' }
]
});

双击事件并刷新列表的代码如下ondblClickRow: function () { SelectShow(); }:

        function SelectShow() {
var ID = jQuery("#list").jqGrid('getGridParam', 'selrow');
if (ID) {
alert("您选中的列为:" + ID);
$("#list").trigger("reloadGrid");
}
else {
alert("请选择");
}
}

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

注意:

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显示列表之一的更多相关文章

  1. 利用JqGrid结合ashx及EF分页显示列表之二

    上一篇文章简单利用JqGrid及ashx进行一个数据列表的显示,要文的重点是利用EF的分页与JqGrid进行结合,EF本文只是简单运用所以没有很规范,重点还是JqGrid分页的实现;本实例把JqGri ...

  2. 关于jqgrid数据不显示问题

    近日有个需求要用到jqgrid,原本用着一切都很顺利,但是在需求变动后,只是修改部分字段名称jqgrid就不显示数据了,后台数据也能传到前台,但是就是不给我显示,到嘴的肉就是没法吃,蛋疼,郁闷都无法形 ...

  3. [OpenGL] 斯坦福兔子与显示列表

    1.调整桌子的大小.         在OpenGL绘制长方体,能够通过函数: glutSolidCube(Size)          绘制得到的是一个正方体,再利用缩放矩阵使其变成长方体.使得桌子 ...

  4. OpenGL中glVertex、显示列表(glCallList)、顶点数组(Vertex array)、VBO及VAO区别

    OpenGL中glVertex.显示列表(glCallList).顶点数组(Vertex array).VBO及VAO区别 1.glVertex 最原始的设置顶点方法,在glBegin和glEnd之间 ...

  5. NeHe OpenGL教程 第十二课:显示列表

    转自[翻译]NeHe OpenGL 教程 前言 声明,此 NeHe OpenGL教程系列文章由51博客yarin翻译(2010-08-19),本博客为转载并稍加整理与修改.对NeHe的OpenGL管线 ...

  6. SharePoint 2013 自定义翻页显示列表项

    项目需求:自定义开发一个能分页显示列表项的小部件,允许左右翻页,能根据用户权限来显示管理链接等. 效果如下: 技术要求:使用sharepoint rest API 来获取列表项,这样性能高,能够快速响 ...

  7. 如何将经纬度利用Google Map API显示C# VS2005 Sample Code

    原文 如何将经纬度利用Google Map API显示C# VS2005 Sample Code 日前写了一篇如何用GPS抓取目前所在,并回传至资料库储存,这篇将会利用这些回报的资料,将它显示在地图上 ...

  8. Android BLE与终端通信(二)——Android Bluetooth基础科普以及搜索蓝牙设备显示列表

    Android BLE与终端通信(二)--Android Bluetooth基础搜索蓝牙设备显示列表 摘要 第一篇算是个热身,这一片开始来写些硬菜了,这篇就是实际和蓝牙打交道了,所以要用到真机调试哟, ...

  9. 利用jQuery与.ashx完成简单的Ajax

    在ASP.NET同样可以与其它编程语言一样,利用前台的Ajax技术,只是需要注意的是,后台的处理程序不再是一个aspx页面中的Page_Load,而且ASP.NET独有的“一般处理程序”.ashx,下 ...

随机推荐

  1. luoguP4320 道路相遇 圆方树

    标题已经告诉你怎么做了..... 两点间的圆点个数即为所求 建出圆方树后打个树剖求$lca$就行..... 复杂度$O(n + q \log n)$ #include <cstdio> # ...

  2. 网络流小结+[jzyzoj p1320] patrol

    一个不能更清楚的网络流介绍 ↑虽然不是我写的但是观摩一下总是没问题的嗯   看到晗神学的是神奇的ek算法. 但是看起来还是Ford-Fulkerson比较简单..所以我就学了这个...嗯其他的先看看. ...

  3. bzoj 4034: [HAOI2015]T2

    4034: [HAOI2015]T2 Description 有一棵点数为 N 的树,以点 1 为根,且树点有边权.然后有 M 个 操作,分为三种: 操作 1 :把某个节点 x 的点权增加 a . 操 ...

  4. 【洛谷】P1196 [NOI2002]银河英雄传说【带权并查集】

    P1196 [NOI2002]银河英雄传说 题目描述 公元五八○一年,地球居民迁至金牛座α第二行星,在那里发表银河联邦创立宣言,同年改元为宇宙历元年,并开始向银河系深处拓展. 宇宙历七九九年,银河系的 ...

  5. hdu 3294 manacher 求回文串

    感谢: http://blog.csdn.net/ggggiqnypgjg/article/details/6645824/ O(n)求给定字符串的以每个位置为中心的回文串长度. 中心思想:每次计算位 ...

  6. HBase EndPoint加载失败

    概述 参考博客(http://blog.csdn.net/carl810224/article/details/52224441)编写EndPoint协处理器,编写完成后使用Maven打包(使用ass ...

  7. Codeforces Round #346 (Div. 2) C. Tanya and Toys 贪心

    C. Tanya and Toys 题目连接: http://www.codeforces.com/contest/659/problem/C Description In Berland recen ...

  8. Educational Codeforces Round 10 B. z-sort 构造

    B. z-sort 题目连接: http://www.codeforces.com/contest/652/problem/B Description A student of z-school fo ...

  9. ios开发中object-c中UTF-8 和 GBK 的 NSString 相互转化的方法

    应用都要遇到一个很头疼的问题:文字编码,汉字的 GBK 和 国际通用的 UTF-8 的互相转化稍一不慎, 就会满屏乱码.下面介绍 UTF-8 和 GBK 的 NSString 相互转化的方法   NS ...

  10. 【mysql】mysql查询 A表B表 1对多 统计A表对应B表中如果有对应,则返回true否则false作为A表查询结果返回

    A表:goods_type B表:brand_config A:B = 1:N 一种商品类型 对应多条 品牌配置 ======================================== 需求 ...