一、 jqGrid的加载。
1.引用相关头文件
引入CSS:
<link href="Scripts/jquery-ui-1.8.1.custom.css" type="text/css" />
<link href="Scripts/ui.jqgrid.css" type="text/css" />
引入JS:
<script src="Scripts/jquery-1.5.1.js" type="text/javascript"></script>
<script src="Scripts/jquery-ui.min.js" type="text/javascript"></script>
<script src="Scripts/grid.locale-en.js" type="text/javascript"></script>
<script src="Scripts/jquery.jqGrid.min.js" type="text/javascript"></script>
因为jqGrid3.6及以后的版本集成了jQuery UI,所以,此处需要导入UI相关js和css。另外grid.locale-en.js这个语言文件必须在jquery.jqGrid.min.js之前加载,否则会出问题。
2.将jqgrid加入页面中
根据jqGrid的文档,要想生成一个jqGrid,最直接的方法就是:
$("#list").jqGrid(options);
其中list是页面上的一个table:<table></table>
下面是一个简单的例子:
<script type="text/javascript"> $(document).ready(function () { jQuery("#list").jqGrid({ url: 'Handler.ashx', datatype: "json", mtype: 'GET', colNames: ['SalesReasonID', 'Name', 'ReasonType', 'ModifiedDate'], colModel: [ { name: 'SalesReasonID', index: 'SalesReasonID', width: 40, align: "left", editable: true }, { name: 'Name', index: 'Name', width: 100, align: "center" }, { name: 'ReasonType', index: 'ReasonType', width: 100, align: "center" }, { name: 'ModifiedDate', index: 'ModifiedDate', width: 150, align: "center", search: false } ], rowList: [10, 20, 30], sortname: 'SalesReasonID', viewrecords: true, sortorder: "desc", jsonReader: { root: "griddata", total: "totalpages", page: "currpage", records: "totalrecords", repeatitems: false }, pager: jQuery('#pager'), rowNum: 5, altclass: 'altRowsColour', //width: 'auto', width: '500', height: 'auto', caption: "DemoGrid" }).navGrid('#pager', { add: true, edit: true, del: true,search:false,refresh:false }); ; })
二、 jqgrid的重要选项
具体的options参考,可以访问jqGrid文档关于option的章节(?id=wiki:options)。其中有几个是比较常用的,重点介绍一下:
2.1 prmNames选项
prmNames是jqGrid的一个重要选项,用于设置jqGrid将要向Server传递的参数名称。其默认值为:
prmNames : {
page:"page", // 表示请求页码的参数名称
rows:"rows", // 表示请求行数的参数名称
sort: "sidx", // 表示用于排序的列名的参数名称
order: "sord", // 表示采用的排序方式的参数名称
search:"_search", // 表示是否是搜索请求的参数名称
nd:"nd", // 表示已经发送请求的次数的参数名称
id:"id", // 表示当在编辑数据模块中发送数据时,使用的id的名称
oper:"oper", // operation参数名称
editoper:"edit", // 当在edit模式中提交数据时,操作的名称
addoper:"add", // 当在add模式中提交数据时,操作的名称
deloper:"del", // 当在delete模式中提交数据时,操作的名称
subgridid:"id", // 当点击以载入数据到子表时,传递的数据名称
npage: null,
totalrows:"totalrows" // 表示需从Server得到总共多少行数据的参数名称,参见jqGrid选项中的rowTotal
}
2.2 jsonReader选项
jsonReader是jqGrid的一个重要选项,用于设置如何解析从Server端发回来的json数据,如果Server返回的是xml数据,则对应的使用xmlReader来解析。jsonReader的默认值为:
jsonReader : {
root: "rows", // json中代表实际模型数据的入口
page: "page", // json中代表当前页码的数据
total: "total", // json中代表页码总数的数据
records: "records", // json中代表数据行总数的数据
repeatitems: true, // 如果设为false,则jqGrid在解析json时,会根据name来搜索对应的数据元素(即可以json中元素可以不按顺序);而所使用的name是来自于colModel中的name设定。
cell: "cell",
id: "id",
userdata: "userdata",
subgrid: {
root:"rows",
repeatitems: true,
cell:"cell"
}
}
假如有下面一个json字符串: