前言:本篇主要介绍如何在dwz框架中嵌入jqGrid组件,因为dwz自带的表格组件功能不够全面,而jqGrid使用起来的确非常的不错,于是我们来看看两者结合起来有什么不一样吧。

第一步:准备jqgrid组件,主要以下几个文件,见下图

第二步:在index页面进行jqGrid组件的导入和本地化,见代码

<!-- jqgrid -->
<script src="${ctx}/common/jqgrid/js/jquery.jqGrid.src.js" type="text/javascript"></script>
<script src="${ctx}/common/jqgrid/js/grid.locale-cn.js" type="text/javascript"></script>

相关文章: dwz中对jqGrid设置a标签

第三步:jsp中引入对应的js文件,一般情况下,我们都会把jsp和对应的js进行分离,通过script标签调用jqgrid初始化方法

<script type="text/javascript" src="${ctx}/member/js/oneagencyList.js"></script>
<script type="text/javascript">
proxyListpageGrid.initjqgridPage();
</script>

第四步:检索区域的页面构成见如下代码,注意点:

1.id一定要使用本页面特有的id,name也一样,如proxyListpage_pid;

2.条件的内容初始化通过controller处理后,直接在页面上加载,如以下代码中的“类型”下拉框

3.检索button调用jqgrid的检索方法,见如下proxyListpageGrid.gridReolad()。

<div class="pageHeader">
<div class="searchBar">
<ul class="searchContent">
<li>
<label>代理编号:</label>
<input type="text" value="" id="proxyListpage_pid" name="proxyListpage_pid">
</li>
<li>
<label>代理名称:</label>
<input type="text" value="" id="proxyListpage_pname" name="proxyListpage_pname">
</li>
<li>
<label>类型:</label>
<select class="combox" id="proxyListpage_style" name="proxyListpage_level">
<c:forEach var="item" items="${options}" varStatus="s">
<option value="${item.key}">${item.value}</option>
</c:forEach>
</select>
</li>
<li>
<label>状态:</label>
<select class="combox" id="proxyListpage_status" name="proxyListpage_status">
<option value="全部">全部</option>
<option value="启用">启用</option>
<option value="停收新单">停收新单</option>
<option value="停用账户">停用账户</option>
</select>
</li>
</ul>
<div class="subBar">
<ul>
<li><input type="button" value="检索" οnclick="proxyListpageGrid.gridReolad();" /></li>
</ul>
</div>
</div>
</div>

第五步:表格区域(jqgrid)的构成见如下代码,注意点:

1.table上加上layoutH属性(可以根据页面调整)和class=jqgrid属性

<div class="pageContent" style="border-left:1px #B8D0D6 solid;border-right:1px #B8D0D6 solid">
<div class="panelBar">
<ul class="toolBar">
<li><a class="add" rel="pageNav" target="navTab" href="${ctx}/member/newagentinitEdit.do" title="新建代理"><span>新建代理</span></a></li>
</ul>
</div>
<!-- jqgrid和页面上普通的table进行区别 -->
<table id="proxyListpageGrid" layoutH="175" class="jqgrid"></table>
<div id="proxyListpageGridPager"></div>
</div>

第六步:页面对应的js文件,详细介绍见以下表格及代码部分

这是第一部分,也就是jqgrid初始加载的方法
1.整个js必须有自己的方法命名空间,如proxyListpageGrid
2.jqgrid的id也必须是整个dwz中唯一的,限于dwz的框架处理方式
3.指定url,如common.ctx + "/member/jqgridProxysList.do",
4.postData传递参数,如 pid : $("#proxyListpage_pid").val(),
5.colNames中指定列名,colModel指定列格式
6.其他参照左侧内容,保持不变
var proxyListpageGrid = {// 初期化设置initSearch : function() {$("#proxyListpageGrid").jqGrid({url : common.ctx + "/member/jqgridProxysList.do",datatype : "xml",mtype : "POST",postData : {// 代理编号pid : $("#proxyListpage_pid").val(),// 代理名称pname : $("#proxyListpage_pname").val(),// 状态status : $("#proxyListpage_status").val(),// 等级proxylevel : $("#proxyListpage_style").val()},loadui : 'disable',subGrid : true,autowidth : true,shrinkToFit : true,viewrecords : false,rownumbers : false,colNames : ['ID', '代理序列号', '代理编号', '代理名称', '会员编号', '会员数', '已开数', '未开数', '所属代理', '下级代理数', '停用账户时间', '最后登录时间', '停收新单时间', '状态', '操作', '解锁状态'],colModel : [{name : 'id',index : 'id',hidden : true}, {name : 'proxyserial',index : 'proxyserial',hidden : true}, {name : 'pid',index : 'pid',width : 80,resizable : false,sorttype : 'text',align : 'left'

第二部分,指定jqgrid的数据格式以及分页标签

1.xmlReader和左侧保持一致
2.rowNum指定为50和后台的默认行数保持一致
3.rowList指定分页的当前行数
4.subGridRowExpanded为扩展的子表格
xmlReader : {repeatitems : false,root : "PageGrid",row : "map",page : 'page',total : 'total',records : 'records',id : 'ID'},rowNum : 50,rowList : [50, 100, 200, 300],pager : "#proxyListpageGridPager",subGridRowExpanded : function(subgrid_id, row_id) {
第三部分,配置子表格的创建方式
1.基本内容都保持和左侧一致就可以了
2.注意表格的id指定属性
// 获取会员请求地址var initUrl = common.ctx + "/member/jqgridMembersList.do";// 当前选择的父级代理信息var rowData = $("#proxyListpageGrid").jqGrid('getRowData', row_id);// 创建子表格var subgrid_table_id, pager_id;subgrid_table_id = subgrid_id + "_t";pager_id = "p_" + subgrid_table_id;// 填充内容$("#" + subgrid_id).html("<table id='" + subgrid_table_id + "' class='scroll'></table><div id='" + pager_id + "' class='scroll'></div>");$("#" + subgrid_table_id).jqGrid({url : initUrl,datatype : "xml",mtype : "POST",height : 'auto',postData : {// 所属代理proxyserial : rowData.proxyserial,},shrinkToFit : true,viewrecords : false,rownumbers : false,loadui : 'disable',colNames : ['ID', 'PID', '会员编号', '会员姓名', '所属代理', '手机号码', '邮件', '证件号码', '是否VIP', '最后登录IP', '最后登录时间', '类别', '状态', '操作'],colModel : [{name : 'id',index : 'id',hidden : true}, {name : 'pid',index : 'pid',hidden : true}, {
第四部分,指定jqgrid数据加载完毕后的complete方法
1.获取行内容方法为通过ids获取对应的rowData,参照左侧方式
2.a标签的ajax请求方式,注意rel指定为jqgrid的id,target为ajaxTodojqgrid,atitle为弹出的确认对话框表头
3.a标签的查看方式,就和普通的dwz的a标签一致
4.通过 $("#" + subgrid_table_id).jqGrid('setCell', ids[i], 'oper', operBtntsxd + " " + operBtntyzh);设定jqgrid单元格
渲染方式
5.最后调用共同方法initjqgridNavTab();initjqgridAjaxtodo();初始化a标签在dwz中的运行方式
gridComplete : function() {var ids = $("#" + subgrid_table_id).jqGrid('getDataIDs');for (var i = 0; i < ids.length; i++) {// 会员信息var rowData = $("#" + subgrid_table_id).jqGrid('getRowData', ids[i]);// 停收新单操作var operBtntsxd = '<a style="color: #0088cc" rel="' + subgrid_table_id + '" target="ajaxTodojqgrid" href="' + common.ctx + '/member/tsxd.do?id=' + rowData.id + '" atitle="您确认停收该会员的新单吗?">停收新单</a>';// 停用账户操作var operBtntyzh = '<a style="color: #0088cc" rel="' + subgrid_table_id + '" target="ajaxTodojqgrid" href="' + common.ctx + '/member/tyzh.do?id=' + rowData.id + '" atitle="您确认停用该会员的账户吗?">停用账户</a>';// 恢复操作var operBtnhf = '<a style="color: #0088cc" rel="' + subgrid_table_id + '" target="ajaxTodojqgrid" href="' + common.ctx + '/member/hf.do?id=' + rowData.id + '" atitle="您确认恢复该会员吗?">恢复</a>';// 会员编号编号添加超链接(会员)var mname = '<a style="color: #0088cc" title="查看会员信息" rel="pageNav" target="navTab" href="' + common.ctx + '/member/initEditMembers.do?id=' + rowData.id + '">';var musernameBtn = mname + rowData.username + '</a>';// 会员名称添加超链接(会员)var mrealnameBtn = mname + rowData.realname + '</a>';// 会员编号编号添加超链接(代理)var pname = '<a style="color: #0088cc" title="查看代理信息" rel="pageNav" target="navTab" href="' + common.ctx + '/member/initEditproxys.do?id=' + rowData.pid + '">';var pusernameBtn = pname + rowData.username + '</a>';// 会员名称添加超链接(代理)var prealnameBtn = pname + rowData.realname + '</a>';if (rowData.stauts == "启用") {$("#" + subgrid_table_id).jqGrid('setCell', ids[i], 'oper', operBtntsxd + " " + operBtntyzh);} else if (rowData.stauts == "停收新单") {$("#" + subgrid_table_id).jqGrid('setCell', ids[i], 'oper', operBtnhf);} else if (rowData.stauts == "停用账户") {$("#" + subgrid_table_id).jqGrid('setCell', ids[i], 'oper', operBtnhf);}// 查看代理会员if (rowData.style == "会") {$("#" + subgrid_table_id).jqGrid('setCell', ids[i], 'username', musernameBtn);$("#" + subgrid_table_id).jqGrid('setCell', ids[i], 'realname', mrealnameBtn);}if (rowData.style == "代") {$("#" + subgrid_table_id).jqGrid('setCell', ids[i], 'username', pusernameBtn);$("#" + subgrid_table_id).jqGrid('setCell', ids[i], 'realname', prealnameBtn);}}// 初始化超链接方式initjqgridNavTab();// 初始化ajaxtodoinitjqgridAjaxtodo();}});
第五部分,指定jqgrid的查询方法
参照左侧的内容就可以了,指定页数为第一页,指定查询参数,指定jqgrid的重载。
// 查询功能gridReolad : function() {$("#proxyListpageGrid").jqGrid('setGridParam', {url : common.ctx + "/member/jqgridProxysList.do",page : 1,postData : {// 代理编号pid : $("#proxyListpage_pid").val(),// 代理名称pname : $("#proxyListpage_pname").val(),// 状态status : $("#proxyListpage_status").val(),// 等级proxylevel : $("#proxyListpage_style").val()}});$("#proxyListpageGrid").trigger("reloadGrid");},
第六部分,指定jqgrid的初始化内容
1.获取对应列表内容
2.设置jqgrid的高度
initjqgridPage : function() {// 获取代理proxyListpageGrid.initSearch();// 设置高度setjqGridHeight("proxyListpageGrid");}

整个构成部分就完成了。

dwz嵌入jqGrid相关推荐

  1. dwz中jqGrid的主题变更

    前言:本篇来介绍如何对dwz框架中的jqGrid组件变更主题. 第一步:从jquery ui官网下载主题,我挑选了三种比较常用的主题,然后放在如下目录中 第二步:在index.jsp文件表头中增加如下 ...

  2. mp3 编辑 linux,Linux_Ubuntu 32/64位安装音乐标签编辑器Kid3的方法,  Kid3能够修改mp3中ID3的tag标 - phpStudy...

    Ubuntu 32/64位安装音乐标签编辑器Kid3的方法 Kid3能够修改mp3中ID3的tag标签,还能同时修改ID3v1和ID3v2的tag标签吗,是款功能强大的音乐标签编辑器,因为其在Ubun ...

  3. dwz ajax分页,DWZ table的原生分页浅谈

    最近在项目开发当中很少会用到DWZ原生的table分页,往往是使用jqgrid or grid这种第三方数据绑定的表格插件,如今在项目中要求了,就必须要使用DWZ自带的table了 接下来看一段代码, ...

  4. dwz 表单提交 html,dwz 文件上传表单提交 分析

    众所周知,因为Ajax不支持enctype="multipart/form-data".所以如果想采用无刷新的方式提交文件,Ajax是不行的.采用变通,也是最简单有效的方式是在页面 ...

  5. 如何在3天内“将Excel的功能嵌入Web 系统”|关于新手训练营,他们有话说

    现阶段,国内的在线文档协同编辑软件正处高光时刻,无论是石墨文档.腾讯文档.有道云协作.金山WPS等,都有其最适合的应用场景,如有些注重数据存储和数据安全,有些则注重团队管理和文档协作,即便应用场景不同 ...

  6. 通俗易懂word2vec详解词嵌入-深度学习

    https://blog.csdn.net/just_so_so_fnc/article/details/103304995 skip-gram 原理没看完 https://blog.csdn.net ...

  7. 处理器嵌入室内校正数字音频平台

    处理器嵌入室内校正数字音频平台 Processors to embed room correction digital audio platform 家庭影院的目的是给家带来一种影院般的体验.对于发烧 ...

  8. DCN-2655 gre隧道 vpn 嵌入IPSec配置:

    DCN-2655 gre隧道 vpn 嵌入IPSec配置: RT1配置: Ip route 183.203.10.128 255.255.255.252 183.203.10.2 Interface ...

  9. 实验四:使用库函数API和C代码中嵌入汇编代码两种方式使用同一个系统调用

    贺邦+原创作品转载请注明出处 + <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000 实验目的: 使用库函数 ...

最新文章

  1. Selenium 页面自动化测试 面试 问题汇总
  2. Git多个commit合并成一个【中间提交合并 尾部提交合并】
  3. 简析LIVE555中的延时队列
  4. ADO.NET与Sql Server和Access的连接
  5. 【设计模式】2.工厂设计模式(生产者消费者问题)
  6. 图片夹_电竞游戏鼠标好伴侣,鼠标线夹,让你桌面不凌乱
  7. 199. Binary Tree Right Side View
  8. 联想E450c下vmware安装ubuntu Intel VT-x 处于禁用状态
  9. Redis之 介绍和安装
  10. 什么是OpenStack
  11. rpm数据库异常问题总结
  12. 深入浅出统计学读书笔记汇总
  13. Java 数据库添加,修改和删除
  14. Linux中命令行进行WiFi连接(零基础详解)
  15. 收银系统连接不上数据服务器,收银系统服务器数据库
  16. Linux——DHCP服务器搭建
  17. 《电磁场与电磁波》课程笔记(一)——矢量与坐标系
  18. win10如何关机时显示停止服务器,Win10系统关机时总提示此应用程序阻止关机如何解决...
  19. DIY自平衡车意外失去左腿后,小哥爆改假肢玩出了花,稚晖君:技术到内心都硬核...
  20. 怎么用计算机编写文件,怎样在电脑上写作文做文件

热门文章

  1. Deeplab实战:使用deeplabv3实现对人物的抠图
  2. 谈2016年的酸甜苦辣
  3. 饥荒私人服务器设定修改,饥荒服务器-自定义世界设置
  4. 清除破解Windows XP登录密码的方法
  5. 服务器没响应smtp,smtp服务器网关没响应
  6. 打开linux的虚拟机,提示找不到打开的硬盘
  7. 2018最值得期待:无人驾驶网络技术的先锋云杉网络
  8. python for ArcGIS 绘制苏州市板块地图
  9. oracle安装rman,oracle之rman详解
  10. python k折交叉验证_机器学习之K折交叉验证