jQuery技术

jquery学习笔记jqGrid学习笔记 完整整理

字号+ 作者:H5之家 来源:H5之家 2017-11-07 14:03 我要评论( )

一、 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

一、 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)。其中有几个是比较常用的,重点介绍一下:

  • url :jqGrid控件通过这个参数得到需要显示的数据,具体的返回值可以使XML也可以是Json。
  • datatype :这个参数用于设定将要得到的数据类型。类型包括:json 、xml、xmlstring、local、javascript、function。
  • mtype : 定义使用哪种方法发起请求,GET或者POST。
  • height :Grid的高度,可以接受数字、%值、auto,默认值为150。
  • width :Grid的宽度,如果未设置,则宽度应为所有列宽的之和;如果设置了宽度,则每列的宽度将会根据shrinkToFit选项的设置,进行设置。
  • shrinkToFit :此选项用于根据width计算每列宽度的算法。默认值为true。如果shrinkToFit为true且设置了width值,则每列宽度会根据width成比例缩放;如果shrinkToFit为false且设置了width值,则每列的宽度不会成比例缩放,而是保持原有设置,而Grid将会有水平滚动条。
  • autowidth :默认值为false。如果设为true,则Grid的宽度会根据父容器的宽度自动重算。重算仅发生在Grid初始化的阶段;如果当父容器尺寸变化了,同时也需要变化Grid的尺寸的话,则需要在自己的代码中调用setGridWidth方法来完成。
  • pager :定义页码控制条Page Bar,在上面的例子中是用一个div(<div id=”pager”></div>)来放置的。
  • sortname :指定默认的排序列,可以是列名也可以是数字。此参数会在被传递到Server端。
  • viewrecords :设置是否在Pager Bar显示所有记录的总数。
  • caption :设置Grid表格的标题,如果未设置,则标题区域不显示。
  • rowNum :用于设置Grid中一次显示的行数,默认值为20。正是这个选项将参数rows(prmNames中设置的)通过url选项设置的链接传递到Server。注意如果Server返回的数据行数超过了rowNum的设定,则Grid也只显示rowNum设定的行数。
  • rowList :一个数组,用于设置Grid可以接受的rowNum值。例如[10,20,30]。
  • colNames :字符串数组,用于指定各列的题头文本,与列的顺序是对应的。
  • colModel :最重要的数组之一,用于设定各列的参数。(稍后详述)
  • prmNames :这是一个数组,用于设置jqGrid将要向Server传递的参数名称。(稍后详述)
  • jsonReader :这又是一个数组,用来设定如何解析从Server端发回来的json数据。(稍后详述)
  • 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字符串:

     

    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章
    • jQuery中addClass()方法用法实例教程

      jQuery中addClass()方法用法实例教程

      2017-11-07 15:01

    • Selenium教程之使用jquery辅助进行测试

      Selenium教程之使用jquery辅助进行测试

      2017-11-07 11:01

    • JQuery ID选择器中的不能包含特殊字符的处理

      JQuery ID选择器中的不能包含特殊字符的处理

      2017-11-06 09:15

    • 使用jQuery实现两个div中按钮互换位置的实例代码

      使用jQuery实现两个div中按钮互换位置的实例代码

      2017-11-05 17:00

    网友点评