总结下jqgrid动态改变列头
前端: jqgrid 版本:4.4.4,jquery版本:1.9.1
后端:spring3.2 MVC
我在这里未列出所有代码,需求是在页面左侧有棵树,右侧是grid。点击树节点,根据不同条件右侧显示不同的列头,我在这里抛砖引玉,只列出基本的代码。
前端:
1.html部分
<table id="grid"></table>
<div id="nav_pager"></div>
2.JS部分
在此,我未提供树的代码,只给出一个点击树节点后触发的方法refreshRoleAccountGrid,传入点击节点的ID.
<script> var postData = {}; var jqdefaultGridConfig = { mtype : 'POST',//ajax提交方式 height : 360, width:550, rowNum : 20,//设置表格中显示的记录数,参数会被自动传到后台。 rowList : [ 10, 20, 50 ], pager : '#nav_pager', viewrecords : true,//是否要显示总记录数 multiselect : true,//定义是否可以多选 postData : postData,//参数 jsonReader : { root:"rows", repeatitems : false, page: "page", total: "total", records: "records" }, caption : '用户列表'//标题 }; //刷新grid方法 function refreshRoleAccountGrid(rid){ var url = "sys/role/findmodel"; var myData = {rid:rid}; $.ajax({ type: 'POST', data:myData, url: url,//请求的action路径 error: function () {//请求失败处理函数 alert('请求失败'); }, success:function(data){ //请求成功后处理函数。 var data= eval('('+data+')'); //在此根据不同条件,colModal显示不同 if (data){ jqdefaultGridConfig.colModel=[{name:'id', index:'id', width:55}, {name:'accountid', index:'accountid', width:55}, {name:'accountname', index:'roleid', width:55}]; jqdefaultGridConfig.url="sys/account/data"; }else{ jqdefaultGridConfig.colModel=[{name:'id', index:'id', width:55}, {name:'departmentid', index:'accountid', width:55}, {name:'departmentname', index:'roleid', width:55}]; jqdefaultGridConfig.url="sys/department/data"; } $('#grid').GridUnload(); jqdefaultGridConfig.postData=myData; jqdefaultGridConfig.datatype='json'; $('#grid').jqGrid(jqdefaultGridConfig).trigger("reloadGrid"); } }); } //样式处理 $("#gbox_grid").removeClass("ui-corner-all").removeClass("ui-widget-content"); $("#nav_pager").removeClass("ui-corner-bottom"); </script>
3.后端:
@RequestMapping(value="/sys/role/findmodel") @ResponseBody public String getColModel(HttpServletRequest request, HttpServletResponse response) throws Exception{ String out = ""; String rid = request.getParameter("rid"); //在这里写下业务逻辑,以json格式返回前端显示colModal的判断条件 //<-----业务逻辑开始 //业务逻辑结束--------> return out; }
分页信息:
import java.io.Serializable; import java.util.List; /*** * 分页信息封装 * */ public class PageInfo implements Serializable { private static final long serialVersionUID = 587754556498974978L; //总页数 private int totalPage; //总记录数 private int totalResult; //表示从当前记录开始查询,显示到的ID, 在mysql limit 中就是第一个参数. private int currentResult; private String sortField; private String order; private List<?> resultsList;//返回的数据 private int rows;//每页显示数量 private int page;//当前页码 public int getRows() { return rows; } public void setRows(int rows) { this.rows = rows; } public int getPage() { return page; } public void setPage(int page) { if (page <=1){ page = 1; } this.page = page; } public List<?> getResultsList() { return resultsList; } public void setResultsList(List<?> resultsList) { this.resultsList = resultsList; } public int getTotalPage() { if (totalResult % rows == 0) { this.totalPage = totalResult / rows; } else { this.totalPage = (totalResult / rows) + 1; } return totalPage; } public void setTotalPage(int totalPage) { this.totalPage = totalPage; } public int getTotalResult() { return totalResult; } public void setTotalResult(int totalResult) { this.totalResult = totalResult; } public int getCurrentResult() { currentResult = (page-1) * rows; return currentResult; } public void setCurrentResult(int currentResult) { this.currentResult = currentResult; } public String getSortField() { return sortField; } public void setSortField(String sortField) { this.sortField = sortField; } public String getOrder() { return order; } public void setOrder(String order) { this.order = order; } }
返回前端给jqgrid的json数据输出:
public String outputJSONDataByList(PageInfo pageview) { JSONObject obj = new JSONObject(); obj.put("page", pageview.getPage()); // 当前页 obj.put("total", pageview.getTotalPage()); // 总页数 obj.put("records", pageview.getTotalResult()); // 总记录数 obj.put("rows", pageview.getResultsList()); //具体的Table显示内容 return obj.toString(); }
相关推荐
jqGrid 中的锁定固定的列并且关于jqGrid 中的一些排序的实现细节
jqgrid初始化时动态创建列并对这些列数值进行合计 生成动态列的数据源可以通过ajax获取或者前端自定义数据集
本文实例讲述了jQuery插件jqGrid动态获取列和列字段的方法。分享给大家供大家参考,具体如下: 1、问题背景 jqGrid表格插件,利用自身方法获取表格的表头和表格字段;获取列名和列字段名显示在弹窗里,用复选框进行...
该方式是在jqgrid的列基础上进行编辑,为列添加保存事件,文本域和输入框采用blur失去焦点的方式进行保存,该方法含有点击为其他列赋值的功能。参考api列子并结合自己公司功能需求。
jgrid中实现显示的列的动态显示值,列可配置生成
jQGrid动态填充select下拉框的选项值(动态填充)
jqgrid合并行、合并列 先看示例图片最终效果: jqgrid合并单元格 .jqgrid { width: 80%; margin: 0 auto; } /* 这个代码是解决表头有一点点错位的问题 */ .ui-state-default, .ui-widget-content .ui-state...
jqgrid 修改一列 。修改所有的行。通过vue.js 与jqgrid 的应用,供大家参考学习。多多提意见 。相互学习交换意见
NULL 博文链接:https://vipshow.iteye.com/blog/1812381
jqgrid 采用冻结栏之后往往会出现冻结的栏的高度和非冻结栏高度的不一致,滚动滚动条的时候出现冻结栏的div小好几个px 的问题
NULL 博文链接:https://474904099.iteye.com/blog/1846666
jqgrid 编辑表格 一列
jqGrid数据调用实例
jqgrid_demo40-----可用的-使用方法请查看README文件.rar-----------经我修改过的demo40,官网上面demo40下载下来是没法用的,因为里面有些东西是错的,当然我这个demo40还是还有是些不足,比喻说数据库中少表导致...
JqGrid列表自动生成(不确定列),orgchart组织结构图demo(实用),jqgrid 底部合计汇总功能,本页汇总
jqGrid 学习 原理 2 jqGrid 学习之 皮肤 2 jqGrid 学习 2 jQuery 学习之:jqGrid 表格插件 参数配置 4 ...使用 jqGrid 修改数据并检查 69">jqGrid 学习 原理 2 jqGrid 学习之 皮肤 2 jqGrid [更多]
项目已关闭 - 现在,您... jQGrid 具有显示/隐藏列功能(上下文菜单) 此存储库是讨论在 jqGrid 中添加显示/隐藏列功能的最佳方法的草案。 在列中添加可见性属性 右键单击标题以显示带有列复选框列表的上下文菜单。
jqgrid实现分组显示和统计的功能,jqgrid实现分组显示和统计
jqgrid