一、
问题描述:
在jqGrid给我们提供的官方文档上有设置某一行(row)的数据,但却没有提供设置某一列(col)的数据。
解决方法:
循环每一行,分别设置对应的列的数据。主要用到这两个方法:
1、var ids = $("#yourJqGridName").jqGrid('getDataIDs'); 返回的值为一个数组,里面是bajqGrid的的id.
2、$("#yourJqGridName").jqGrid('setRowData',cl,{对应的列名:'你要设置的值',对应的列名:‘你要设置的值’}); cl 为行的id。
我用来解决的问题:
1、一个表中要显示的数据,从后台封装到一个bean里边,比较麻烦,况且就使用一次,没必要,只能分开获取,再从新赋值。
2、这种方法还可以自定义某一列要显示的内容,比如显示一个按钮。
实例1:不是一个完整的例子但是思路全在里边。
<!DOCTYPE html > <%@ page language="java" pageEncoding="UTF-8" contentType="text/html;charset=UTF-8" %> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <script type="text/javascript"> $(function(){ $("#ListTable").jqGrid({ caption:'LOA Request Shortcut', url:'后台请求的url', datatype:'json', mtype:'post', colNames:['Id','First Name','Last Name'],//id 为从数据库中取得数据, //firstName 和lastName 自定义赋值(本例采用,从服务上获取到存到本地,然后填充到表中) colModel:[ {name:'Id',align:'center'}, {name:'firstName',align:'center'}, {name:'lastName',align:'center'}, ], width:$("#ListDiv").width(), //在gridComplete属性中循环每一行,设置相应的列的值 gridComplete: function(){ var ids = jQuery("#ListTable").jqGrid('getDataIDs'); for(var i=0;i < ids.length;i++){ var cl = ids[i]; jQuery("#ListTable").jqGrid('setRowData',cl,{firstName:$("#firstName").val(),lastName:$("#lastName").val()}); } } }); }); </script> </head> <body> <div id="ListDiv"> <!--el表达式 从后台获取的数据 --> <input id="firstName" type="hidden" value="${firstName }"> <input id="lastName" type="hidden" value="${lastName }"> <table id="ListTable"> </table> </div> </body> </html>
实例2、在单元格中添加按钮
<html> <head> <script type="text/javascript"> $(function({ $("#yourTable").jqGrid({ url:'你的url', colNames:["Id", "Name"], colModel:[ {name:"id" ,editable:true}, {name:"name" ,editable:true}, {name:"action", index:'action',width:'30%',align:'center',sortable:false} ], gridComplete: function(){ var ids = jQuery("#yourTable").jqGrid('getDataIDs'); for(var i=0;i < ids.length;i++){ var cl = ids[i]; be = "<input style='height:22px;width:60px;' type='button' id='accBtn"+ cl +"' value='Edit' onclick=\"btnClick("+cl+",this)\" />"; jQuery("#yourTable").jqGrid('setRowData',cl,{action:be}); } }, }); })); //添加的 按钮的单击事件 function btnClick(cl,obj){ var btnStr=$(obj).val();//传过来的button对象,调用的时候通过this关键词设置此参数 } </script> </head> <body> <div id="ListDiv"> <table id="yourTable"> </table> </div> </body> </html>