打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
jqGrid 使用总结

      最近,使用了一个挺不错的数据展示插件,是基于jquery的,发现这个插件功能好强大,使用上也还不错,虽然没有使用extjs那么好用,但是这个插件更加轻量级一些。

      上周又碰到了之前碰到过类似的问题,想找一个东西,到网上乱找,都没找到,后来发现自己做过类似的东西,但是没有记载下来,导致。事实又一次证明了,懒人是不行的!

      不扯了,使用jqGrid其实很简单,附上比较简单的代码

Java代码  
  1. jsp 页面放上这两个标签,用来显示表格,跟分页标签  
  2. <table id='list'></table>  
  3. <div id='pager'></div>  
  4.   
  5.   
  6. var listOptions = {  
  7.     colNames : ['ID''Name'],  
  8.     colModel : [{  
  9.                 name : 'id',  
  10.                 index : 'id',  
  11.                 width : 55,  
  12.                 editable : false,  
  13.                 hidden : true,  
  14.                 editoptions : {  
  15.                     readonly : true,  
  16.                     size : 10  
  17.                 }  
  18.             }, {  
  19.                 name : 'name',  
  20.                 index : 'name',  
  21.                 width : 90,  
  22.                 editable : true,  
  23.                 editoptions : {  
  24.                     size : 20  
  25.                 },  
  26.                 editrules: { required: true}  
  27.             },{  
  28.                 name : 'school',  
  29.                 index : 'school',  
  30.                 width : 90,  
  31.                 editable : true,  
  32.                 edittype : 'select',  
  33.                 editoptions : {  
  34.                     dataUrl : getContentPath()   'a.do?abbreviation&.rand='   Math.random()  
  35.                 },  
  36.                 editrules: { required: true}  
  37.             }],  
  38.     // caption : 'List',  
  39.     height : 348,  
  40.     width : 600,  
  41.     viewrecords : true,  
  42.     multiselect : false,  
  43.     pager : '#pager',  
  44.     rowNum : 100,  
  45.     rownumbers : true,  
  46.     headertitles : true,  
  47.     sortname : 'id',  
  48.     url : 'query.do',  
  49.     editurl : 'edit.do',  
  50.     datatype : 'json',  
  51.     sortorder : 'desc',  
  52.     pginput : false,  
  53.     pgbuttons : false,  
  54.     jsonReader : {  
  55.         repeatitems : false  
  56.     }  
  57. };  
  58. function init() {  
  59.   
  60.     jQuery('#list').jqGrid(listOptions);  
  61.     jQuery('#list').jqGrid('navGrid''#pager', {  
  62.                 edit : true,  
  63.                 add : true,  
  64.                 del : true,  
  65.                 search : false  
  66.             }, // options  
  67.             {  
  68.                 editCaption : 'Edit',  
  69.                 top : '0',  
  70.                 left : '310',  
  71.                 jqModal : false,  
  72.                 reloadAfterSubmit : true,  
  73.                 afterShowForm : function(form) {  
  74.                     $('#etdDate').datepicker({  
  75.                         dateFormat : 'yy-mm-dd'  
  76.                     });  
  77.                 },  
  78.                 afterSubmit : function(response, postdata) {  
  79.                     var message= getMessage(response);  
  80.                     if(message&&message.name=='validation'){  
  81.                         return [false,message.message] ;  
  82.                     }else {  
  83.                         return [true,''] ;  
  84.                     }  
  85.                 }  
  86.             }, // edit options  
  87.             {  
  88.                 addCaption : 'add',  
  89.                 top : '0',  
  90.                 left : '310',  
  91.                 jqModal : false,  
  92.                 reloadAfterSubmit : true,  
  93.                 afterShowForm : function(form) {  
  94.                     $('#etdDate').datepicker({  
  95.                         dateFormat : 'yy-mm-dd'  
  96.                     });  
  97.                 },  
  98.                 afterSubmit : function(response, postdata) {  
  99.                     var message= getMessage(response);  
  100.                     if(message&&message.name=='validation'){  
  101.                         return [false,message.message];   
  102.                     }else {  
  103.                         return [true,''] ;  
  104.                     }  
  105.                 }  
  106.             }, // add options  
  107.             {  
  108.                 reloadAfterSubmit : true  
  109.             }, // del options  
  110.             {} // search options  
  111.             );  
  112.     jQuery('#list').jqGrid('setLabel''name''', {  
  113.                 'text-align' : 'left'  
  114.             });  
  115.   
  116. }  
  117. $(function() {  
  118.             init();  
  119.         });  
jsp 页面放上这两个标签,用来显示表格,跟分页标签<table id='list'></table><div id='pager'></div>var listOptions = { colNames : ['ID', 'Name'], colModel : [{ name : 'id', index : 'id', width : 55, editable : false, hidden : true, editoptions : { readonly : true, size : 10 } }, { name : 'name', index : 'name', width : 90, editable : true, editoptions : { size : 20 }, editrules: { required: true} },{ name : 'school', index : 'school', width : 90, editable : true, edittype : 'select', editoptions : { dataUrl : getContentPath() 'a.do?abbreviation&.rand=' Math.random() }, editrules: { required: true} }], // caption : 'List', height : 348, width : 600, viewrecords : true, multiselect : false, pager : '#pager', rowNum : 100, rownumbers : true, headertitles : true, sortname : 'id', url : 'query.do', editurl : 'edit.do', datatype : 'json', sortorder : 'desc', pginput : false, pgbuttons : false, jsonReader : { repeatitems : false }};function init() { jQuery('#list').jqGrid(listOptions); jQuery('#list').jqGrid('navGrid', '#pager', { edit : true, add : true, del : true, search : false }, // options { editCaption : 'Edit', top : '0', left : '310', jqModal : false, reloadAfterSubmit : true, afterShowForm : function(form) { $('#etdDate').datepicker({ dateFormat : 'yy-mm-dd' }); }, afterSubmit : function(response, postdata) { var message= getMessage(response); if(message&&message.name=='validation'){ return [false,message.message] ; }else { return [true,''] ; } } }, // edit options { addCaption : 'add', top : '0', left : '310', jqModal : false, reloadAfterSubmit : true, afterShowForm : function(form) { $('#etdDate').datepicker({ dateFormat : 'yy-mm-dd' }); }, afterSubmit : function(response, postdata) { var message= getMessage(response); if(message&&message.name=='validation'){ return [false,message.message]; }else { return [true,''] ; } } }, // add options { reloadAfterSubmit : true }, // del options {} // search options ); jQuery('#list').jqGrid('setLabel', 'name', '', { 'text-align' : 'left' });}$(function() { init(); });

 效果当然很简单,一个列表,一个分页标签,增删改查都有了。

  这不是重点,重点是jqgrid的一些常用的命令。

 

  命令1  jQuery('#list').jqGrid('getCol','styleNumber',false);

    说明:获得jqGrid的一列,好像第一个值是空的,所以遍历的时候,记得在for循环里面if(obj){} 一下。

  命令2  jQuery('#list').getGridParam('selarrrow'); 

     说明:获得jqGrid你选择的多行的记录的id列的值,好像第一个值也是空的。所以最好先判断一下。这个命令使用的前提是你的jqGrid的multiselect 是设置多选。

  命令3  jqGrid.jqGrid('getGridParam', 'selrow')

    说明:获得你选中的行记录的单个id

  命令4  $(listId).jqGrid('restoreRow', this.lastsel)

     说明:把一行处于编辑状态的行变成非编辑状态,但是我发现好像这种方式不能保存你编辑的值,这真让人头疼。

   命令5  $(listId).jqGrid('editRow', id, true, null, null, null, null, function() {
         DataControl.setNewStyleInfoFromRemote(id);
         return true;
        });

     说明: 把一行置于编辑状态。但是编辑状态之后,他得value 就变成了'<input type=*** value='**'>',所以你保存的时候拿这个value的时候还得要处理一下$(row[i].propertityName).val();就可以拿到你想要的值了。

 

除了一些有用的命令之外,还有一些有用的总结。

1如果你的某一个属性对应的是一个文本域,那么如何调整这个文本域的宽度,跟高度呢?呵呵 设置rows : '6',
    cols : '68' 这连个属性即可。

   

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
jqGrid 冻结列的的方法,需要二步
jqgrid编辑
jqGrid点滴
jqGrid的若干种用法
jqgrid学习笔记
porridge jqgrid简单封装
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服