1.支持多种类型的数据集合作为数据源

  1. $("#grid1").jqgrid(
  2. ........
  3. datatype: "xml",
  4. ........
  5. );
  6.  
  7. XML格式:
  8. <rows>
  9. <page></page>
  10. <total></total>
  11. <records></records>
  12. <row id="rowid">
  13. <cell>value1</cell>
  14. <cell>valueN</cell>
  15. </row>
  16. </rows>
  17.  
  18. json格式:
  19. {"page":"页号",
  20. "rows":[
  21. {name1:'value1',name2:'value2',.....nameN:'valueN'},
  22. {....}
  23. ],
  24. "total":记录数,
  25. "records":总记录数
  26. }
  27.  
  28. 数组格式:
  29. var datas = [
  30. {name1:'value1',name2:'value2',..... nameN:'valueN'},
  31. {....}
  32. ];
  33. //把数据添加到jqgrid里
  34. for (var i = 0; i <= mydata.length; i++) {
  35. jQuery("#grid1").jqGrid('addRowData', i + 1, mydata[i]);
  36. }
  37. 或者设置data属性:
  38. $("#grid1").jqgrid(
  39. data:mydata,    
  40. datatype:'local',
  41. );

2.统计运算的功能

  1. footerrow设为true,绑定gridComplete事件。
  2. 统计时利用getCol方法,
  3. 第一个参数为colModename值,
  4. 第二个设为false,否则会返回一个数组而不是但一个数据,
  5. 第三个是设置统计方式,有'sum','avg''count'
  6.  
  7. $("#grid1").jqgrid(
  8. ......
  9. footerrow: true,
  10. gridComplete: completeMethod,
  11. );
  12. function completeMethod(){
  13. var sum_amount=$("#grid1").getCol('amount',false,'sum');
  14. var sum_tax=$("#grid1").getCol('tax',false,'sum');
  15. var sum_total=$("#grid1").getCol('total',false,'sum');
  16. $("#grid1").footerData('set', { name: '合计:', amount: sum_amount, tax: sum_tax, total: sum_total });
  17. }

3.排序

  1. 只要单击列的标题,就可以对该列进行升序或降序的排序。设置该列是否允许排序,在列的属性里设置sortable,同时对于不同的数据类型,
  2. 也需要设置其相应的排序类型sorttype,类型有int/integer 整型,float/number/currency 浮点型,date 日期,text 文本,
  3. function 定义函数来实现自定的排序规则。
  4.  
  5. $("#grid1").jqgrid(
  6. ........
  7. colModel: [
  8. .........
  9. { name: 'id', index: 'id', width: 60, myexport: true, editable: true , sorttype: "int", sortable: true},
  10. ],
  11. );

4.分组

  1. var mydata = [
  2. {id:"1",invdate:"2010-05-24",name:"test",note:"note",tax:"10.00",total:"2111.00"} ,
  3. {id:"2",invdate:"2010-05-25",name:"test2",note:"note2",tax:"20.00",total:"320.00"},
  4. {id:"3",invdate:"2007-09-01",name:"test3",note:"note3",tax:"30.00",total:"430.00"},
  5. {id:"4",invdate:"2007-10-03",name:"test2",note:"note2",amount:"300.00",tax:"21.00",total:"320.00"},
  6. {id:"5",invdate:"2007-09-01",name:"test3",note:"note3",amount:"400.00",tax:"30.00",total:"430.00"},
  7.  
  8. ];
  9. jQuery("#list48").jqGrid({
  10. data: mydata,
  11. datatype: "local",
  12. height: 'auto',
  13. rowNum: 30,
  14. rowList: [10,20,30],
  15. colNames:['Inv No','Date', 'Client', 'Amount','Tax','Total','Notes'],
  16. colModel:[
  17. {name:'id',index:'id', width:60, sorttype:"int"},
  18. {name:'invdate',index:'invdate', width:90, sorttype:"date", formatter:"date"},
  19. {name:'name',index:'name', width:100, editable:true},
  20. {name:'amount',index:'amount', width:80, align:"right",sorttype:"float", formatter:"number", editable:true},
  21. {name:'tax',index:'tax', width:80, align:"right",sorttype:"float", editable:true},
  22. {name:'total',index:'total', width:80,align:"right",sorttype:"float"},
  23. {name:'note',index:'note', width:150, sortable:false}
  24. ],
  25. pager: "#plist48",
  26. viewrecords: true,
  27. sortname: 'name',
  28. grouping:true,
  29. groupingView : {
  30. groupField : ['name']
  31. },
  32. caption: "Grouping Array Data"
  33. });

5.筛选

  1. jqGrid的筛选并不是在grid里面的内容进行筛选,其实是对数据库里的数据筛选查询。
  2. html:
  3. <table id="s2list"></table>
  4. <div id="s2pager"></div>
  5.  
  6. javascript:
  7. jQuery("#s3list").jqGrid(
  8. 'navGrid','#s3pager',
  9. {edit:false,add:false,del:false,search:false,refresh:false}
  10. );
  11. jQuery("#s3list").jqGrid(
  12. 'navButtonAdd',"#s3pager",
  13. {caption:"Toggle",title:"Toggle Search Toolbar", buttonicon :'ui-icon-pin-s',     
  14. onClickButton:function(){      
  15. mygrid[0].toggleToolbar();   
  16. }
  17. });
  18.  
  19. jQuery("#s3list").jqGrid(
  20. 'navButtonAdd',"#s3pager",
  21. {caption:"Clear",title:"Clear Search",buttonicon :'ui-icon-refresh',    
  22. onClickButton:function(){       
  23. mygrid[0].clearToolbar()   
  24. }
  25. });
  26.  
  27. jQuery("#s3list").jqGrid('filterToolbar');

6.增删改查工具栏及分页栏

  1. jqGrid附带了分页栏,在分页栏上可以添加增加,修改,删除以及查询按钮。
  2. html多添加一个层,这个层就存放分页栏:
  3. 记得要在colModel里给可供编辑的列的editable赋值为true,才可以编辑。
  4. <div id="pager"></div>
  5. $("#grid1").jqgrid(
  6. .......
  7. pager:"#pager",     
  8. //通过这属性还可以设置可选的页面大小    
  9. rowList: [10, 20, 30],
  10. );
  11. //这里的 edit,add等就是对应编辑新增等按钮,通过设置布尔值来决定是否显示
  12. jQuery("#grid1").jqGrid(
  13. 'navGrid', '#pager',
  14. { edit: true, add: true, del: true, search: true, refresh: true}
  15. );
  16. //或者用这种形式
  17. jQuery("#grid1").jqGrid(
  18. 'navGrid',
  19. '#pager',
  20. //options
  21. {},
  22. // edit options
  23.   {height: 280, reloadAfterSubmit: false },
  24. // add options
  25.   {height: 280, reloadAfterSubmit: false },
  26. // del options
  27.   {reloadAfterSubmit: false },
  28. // search options
  29.   {}
  30. );

7.分页读取数据

  1. 既然上面已提及到分页,下面则介绍另一种分页方式,通过滚动条进行翻页。
  2. 在这种分页方式中,数据库的所有数据并非一下子读取出来填充到grid中,
  3. 而是通过滚动条的位置得出当前浏览到的哪一页数据,才从数据库读取那部分的数据。
  4. $("#grid1").jqgrid(
  5. ......
  6. //设置了这个才会根据滚动分页读取数据
  7. scroll: 1,
  8.    //设置页面的大小
  9.   rowNum: 10,
  10. );
  11. 下面的例子只是用到本地的数据,同样也是实现了滚动翻页的效果
  12. jQuery("#scrolling").jqGrid({
  13. scroll: 1,
  14. datatype: "local",
  15. data:mydata,
  16. height: 100,
  17. width: 600,
  18. colNames: ['Index', 'Name', 'Code'],
  19. colModel: [
  20. { name: 'id', index: 'id', width: 65 },
  21. { name: 'name', index: 'name', width: 150 },
  22. { name: 'note', index: 'note', width: 100 }
  23. ],
  24. rowNum: 5,
  25. gridview: true,
  26. pager: '#pscrolling',
  27. sortname: 'item_id',
  28. viewrecords: true,
  29. sortorder: "asc",
  30. caption: "Loading data while scrolling"
  31. });

8.父子表

  1. 通过以下设置可使用子表
  2. $("#grid1").jqgrid(
  3. ......
  4. //启用子表
  5. subGrid : true,
  6. subGridUrl: '............',
  7. //设置子表的属性
  8. subGridModel: [{
  9. name : ['name1','name2',......,'nameN'],
  10. width : [width1,width2,.....,widthN] } ],
  11. );
  12. 这里子表的设置只是最基本的,更多属性的资料可参阅
  13. http://www.trirand.com/jqgridwiki/doku.php?id=wiki:subgrid

9.Get/Set 单元格的值

  1. 获取某个单元格的值就调用getCell(rowid, iCol)
  2. iCol既可以是当前列在colModel中的位置索引也可以是name值。
  3. 注意:在编辑行或者单元格时不能使用此方法,此时返回的并不是改变的值,而是原始值。
  4. 设置某个单元格的值就调用setCell(rowid,colname, data, class, properties)。
  5. rowid:当前行id
  6. colname:列名称,也可以是列的位置索引,从0开始;
  7. data:改变单元格的内容,如果为空则不更 新;
  8. class:如果是string则会使用addClass方法将其加入到单元格的css中,如果是array则会直接加到style属性中;
  9. properties:设置单元格属性colModel
  10. 当然也可以Get/Set 行或者列,在这里可查阅更多get/set/add的方法
  11. http://www.trirand.com/jqgridwiki/doku.php?id=wiki:methods

10.数据验证

  1. 通过设置colModeleditrules属性,可以对输入的数据进行验证
  2. jQuery("#grid_id").jqGrid({
  3. ...
  4. colModel: [
  5. {name:'price', ..., editrules:{edithidden:true, required:true....}, editable:true },
  6. ]
  7. });
  8. 下面则是可用的验证选项

11.设置条带状的列

  1. jQuery("#ghcs").jqGrid(
  2. 'setGroupHeaders', { 
  3. //设置列头是否启用colSpan效果
  4. useColSpanStyle: false,
  5. groupHeaders:[{
  6. startColumnName: 'colName',
  7. //合并列组的第一个列名     
  8. numberOfColumns: number,
  9. //合并列的数量    
  10. titleText: 'title'
  11. //合并列的标题   
  12. },]
  13. }

12.编辑器

  1. jqGrid的模板列自带了一些很基本的编辑器,
  2. 包括:
  3. 'text'单行文本框,
  4. 'textarea'多行文本框,
  5. 'select'下拉框,
  6. 'checkbox'复选框,
  7. 'password'密码框,
  8. 'button'按钮,
  9. 'image'图片按钮,
  10. 'file'文件上传框以及
  11. 'custom'自定义编辑器。
  12. colModel里设置edittype则可
  13.  
  14. jQuery("#grid_id").jqGrid({
  15. ...
  16. colModel: [
  17. ...
  18. {
  19. name:'price',
  20. ...,
  21. editable:true,
  22. edittype:'text',
  23. editoptions: {
  24. size:10,
  25. maxlength: 15
  26. }
  27. },    
  28. ]   
  29. });
  30. 其中editoption是对编辑器的一些设置,文本框就可以设置size,maxlength等;
  31. 复选框可设置value
  32. ditoptions: { value:"Yes:No" }
  33. 下拉框以这种形式
  34. editoptions: { value: val1:text1; val2:text2; val3:text3 }
  35. 更多资料参阅 http://www.trirand.com/jqgridwiki/doku.php?id=wiki:common_rules#edittype

13.模板列调用其他编辑器

  1. 上面介绍的编辑器只是使用了html的表单元素而已,下面介绍的是调用插件。
  2. <script src="js/My97DatePicker/WdatePicker.js" type="text/javascript"></script>
  3. <script type="text/javascript">
  4. function InitDatePicker(cl) {
  5. $(cl).click(function () {
  6. WdatePicker();
  7. });
  8. }
  9. jQuery("#grid_id").jqGrid({
  10. ...
  11. colModel: [{
  12. name:'date',
  13. editable:true,
  14. edittype:'text',
  15. editoptions: {
  16. dataInit:InitDatePicker
  17. }
  18. }] ,
  19. });
  20. </script>
  21. 这里调用了My97DatePicker插件作为日历编辑器。
  22. 如果想在一个模板列里放置多种控件,可以用一下方式
  23. 这个其实是在grid的单元格内通过编辑其html来实现。
  24. jQuery("#grid_id").jqGrid({
  25. ...
  26. afterInsertRow: function (rowid, aData) {
  27. var controls="";
  28. //放置在模板里的控件
  29. $("#grid_id").jqGrid('setCell', rowid, 'tag', controls);
  30. }
  31. });

14.模仿Excel移动选择单元格

  1. 设置单元格编辑模式后,可以通过上下左右的导航键跳到需要编辑的单元格,
  2. 按回车进入编辑状态,按Esc键不保存更改内容,按回车保存更改内容
  3. jQuery("#grid_id").jqGrid({
  4. ...
  5. cellEdit:true,
  6. cellsubmit:'clientArray', //定义了单元格内容保存位置 默认值是'remote'
  7. });

jqGrid用法汇总(全经典)的更多相关文章

  1. Linux中find命令的用法汇总

    Linux中find命令的用法汇总 https://www.jb51.net/article/108198.htm

  2. Python Enum 枚举 用法汇总

    Python Enum 枚举 用法汇总 import os import sys if sys.version_info.major + sys.version_info.minor * 0.1 &l ...

  3. WPF中DataGrid中的DataGridCheckBoxColumn用法(全选,全否,反选)

    原文:WPF中DataGrid中的DataGridCheckBoxColumn用法(全选,全否,反选) 前台代码 <DataGrid.Columns> <DataGridCheckB ...

  4. C#中DllImport用法汇总

    最近使用DllImport,从网上google后发现,大部分内容都是相同,又从MSDN中搜集下,现将内容汇总,与大家分享. 大家在实际工作学习C#的时候,可能会问:为什么我们要为一些已经存在的功能(比 ...

  5. 拷贝别人的drawRect绘图分类用途、用法很全。

    拷贝被人的drawRect绘图分类用途,用法很全.留着.供用时参考 // Only override drawRect: if you perform custom drawing. // An em ...

  6. ANDROID内存优化(大汇总——全)

    写在最前: 本文的思路主要借鉴了2014年AnDevCon开发者大会的一个演讲PPT,加上把网上搜集的各种内存零散知识点进行汇总.挑选.简化后整理而成. 所以我将本文定义为一个工具类的文章,如果你在A ...

  7. 正则表达式常用用法汇总 __西科大C语言

    正则表达式,又称正规表示法.常规表示法.(英语:Regular Expression,在代码中常简写为regex.regexp或RE),计算机科学的一个概念.正则表达式使用单个字符串来描述.匹配一系列 ...

  8. XStream 用法汇总

            XStream是一家Java对象和XML转换工具,很好很强大.它提供了所有的基本型.排列.收集和其他类型的支持,直接转换.因此XML在数据交换经常使用.对象序列化(和Java对象的序列 ...

  9. 【SQL】ROW_NUMBER() OVER(partition by 分组列 order by 排序列)用法详解+经典实例

    #用法说明 select row_number() over(partition by A order by B ) as rowIndex from table A :为分组字段 B:为分组后的排序 ...

随机推荐

  1. LAMPer 技能树

  2. [ActionScript 3.0] 翻牌效果,运用语法rotationY,PerspectiveProjection

    package { import com.tweener.transitions.Tweener; import flash.display.Bitmap; import flash.display. ...

  3. EXPORT Man Information for Linux use COMMAND col

    col命令 是一个标准输入文本过滤器,它从标注输入设备读取文本内容,并把内容显示到标注输出设备.在许多UNIX说明文件里,都有RLF控制字符.当我们运用shell特殊字符>和>>,把 ...

  4. java执行命令行命令

    package javai; import java.io.BufferedReader; import java.io.InputStreamReader; public class IOTest ...

  5. Ionic无法通过npm安装解决方案

    http://www.jianshu.com/p/5a99334eb62d 一般从 node.js官网下载安装完之后,npm也会同时安装完. 如果通过 $ npm install -g cordova ...

  6. 【洛谷 5002】专心OI - 找祖先 (树上计数)

    专心OI - 找祖先 题目背景 \(Imakf\)是一个小蒟蒻,他最近刚学了\(LCA\),他在手机\(APP\)里看到一个游戏也叫做\(LCA\)就下载了下来. 题目描述 这个游戏会给出你一棵树,这 ...

  7. 检查java 中有多少个构造函数

    检查函数中有多少个构造函数 程序设计思想: 用while来循环,并设置一个布尔类型变量c,当c是true是继续添加构造函数,当c是false是,跳出循环,程序结束.在循环体中,声明一个计数的int型变 ...

  8. Git的一些用法(下)

    (4) 提交分支 提交分支命令 : 将本地的分支提交到 GitHub中; git push origin experiment (5) 分支合并移除 合并分支命令 : 合并分支之后, 分支中有的文件在 ...

  9. QQ第三方登陆示例

    先上图 若想实现QQ登录,需要成为QQ互联的开发者,审核通过才可实现.注册方法可参考链接http://wiki.connect.qq.com/%E6%88%90%E4%B8%BA%E5%BC%80%E ...

  10. Pycharm与github的秘密

    GIT介绍 GIT文章请看老男孩教育-银角大王的博客: http://www.cnblogs.com/wupeiqi/articles/7295372.html Git 是一个开源的分布式版本控制软件 ...