jQuery插件jqGrid动态获取列和列字段的方法


Posted in Javascript onMarch 03, 2017

本文实例讲述了jQuery插件jqGrid动态获取列和列字段的方法。分享给大家供大家参考,具体如下:

1、问题背景

jqGrid表格插件,利用自身方法获取表格的表头和表格字段;获取列名和列字段名显示在弹窗里,用复选框进行勾选

2、实现源码

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8" />
    <title>jqGrid动态获取列和列字段</title>
    <link rel="stylesheet" href="css/ui.jqgrid.css" rel="external nofollow" />
    <link rel="stylesheet" href="css/ui.jqgrid-bootstrap-ui.css" rel="external nofollow" />
    <link rel="stylesheet" href="css/bootstrap.css" rel="external nofollow" />
    <link rel="stylesheet" href="css/bootstrap-theme.css" rel="external nofollow" />
    <link rel="stylesheet" href="css/jquery-ui.css" rel="external nofollow" />
    <link rel="stylesheet" href="css/jquery-ui.theme.css" rel="external nofollow" />
    <script type="text/javascript" src="js/jquery-1.11.0.min.js" ></script>
    <script type="text/javascript" src="js/jquery-ui.js"></script>
    <script type="text/javascript" src="js/jquery.jqGrid.min.js" ></script>
    <script type="text/javascript" src="plugins/grid.setcolumns.js"></script>
    <style>
      th{
        border: 1px solid #ABABAB;
        line-height: 20px;
        vertical-align: middle;
      }
      td{
        line-height: 20px;
      }
    </style>
    <script>
      $(document).ready(function(){
        $("#jqTable").jqGrid({
          url:"data/student.json",
          height:380,
          datatype:"json",
          colNames:["序号","姓名","年龄","性别","QQ号","电话","地址"],
          colModel:[{
            name : 'id',
            index : 'id',
            label : '序号',
            width : 60,
            align:'center'
          },{
            name : 'name',
            index : 'name',
            label : '姓名',
            width : 120,
            align:'center'
          },{
            name : 'age',
            index : 'age',
            label : '年龄',
            width : 120,
            align:'center'
          },{
            name : 'sex',
            index : 'sex',
            label : '性别',
            width : 120,
            edittype : "select",
            formatter : 'select',
            editoptions : {
              value :'0:男;1:女;'
            },
            align:'center'
          },{
            name : 'qq',
            index : 'qq',
            label : 'QQ号',
            width : 120,
            align:'center'
          },{
            name : 'phone',
            index : 'phone',
            label : '电话',
            width : 120,
            align:'center'
          },{
            name : 'address',
            index : 'address',
            label : '地址',
            width : 200,
            align:'center'
          }],
          sortname : "id",
          sortorder : "desc",
          viewrecords : true,
          rownumbers:true,
          autowidth:true,
          jsonReader : {
            repeatitems : false
          }
        });
        var dialog = $("#dialog-column").dialog({
          autoOpen :false,
          modal : true,
          resizable : true,
          height: "auto",
          width: 400,
          align:'center',
          buttons: {
            "确定": function() {
              $(this).dialog( "close" );
            },
            "关闭": function() {
              $(this).dialog( "close" );
            }
          }
        });
        $("#column").button().on("click", function() {
          dialog.dialog("open");
          //获取列名
          var colNames=$("#jqTable").jqGrid('getGridParam','colNames');
          //获取列字段
          var colModel=$("#jqTable").jqGrid('getGridParam','colModel');
          var table = "";
          var newColumnName = [];
          var newColumnValue = [];
          for (var i=0;i<colNames.length;i++)
          {
            var columnHidden = colModel[i].hidden;
            var columnName = colModel[i].name;
            if(columnHidden==false && columnName != "rn")
            {
              newColumnName.push(colNames[i]);
              newColumnValue.push(columnName);
            }
            console.info(columnName);
          }
          for(var j=0;j<newColumnName.length;j++)
          {
            if(j%5==0)
            {
              table += "<tr>";
            }
            table += "<td><input type='checkbox' id='"+newColumnValue[j]+"' name='column' checked='checked'><label for='"+newColumnValue[j]+"'>"+newColumnName[j]+"</label></td>";
            if((j+1)%5==0)
            {
              table += "</tr>";
            }
          }
          $("#tableColumn").empty().append(table);
        });
      });
    </script>
  </head>
  <body>
    <div>
      <table id="jqTable" class="table"></table>
    </div>
    <div>
      <button id="column" type="button">显示</button>
    </div>
    <div id="dialog-column" title="设置列">
      <table id="tableColumn" style="width: 100%; height: 100px;">
      </table>
    </div>
  </body>
</html>

3、实现结果

(1)初始化

jQuery插件jqGrid动态获取列和列字段的方法

(2)单击按钮

jQuery插件jqGrid动态获取列和列字段的方法

希望本文所述对大家jQuery程序设计有所帮助。

Javascript 相关文章推荐
pjblog修改技巧汇总
Mar 12 Javascript
JavaScript 监听textarea中按键事件
Oct 08 Javascript
基于jquery自己写tab滑动门(通用版)
Oct 30 Javascript
JS中setTimeout()的用法详解
Apr 14 Javascript
javascript实现通过表格绘制颜色填充矩形的方法
Apr 21 Javascript
javascript:void(0)点击登录没反应怎么解决
Nov 13 Javascript
详解JavaScript中this关键字的用法
May 26 Javascript
Three.js学习之正交投影照相机
Aug 01 Javascript
EasyUI 中combotree 默认不能选择父节点的实现方法
Nov 07 Javascript
使用JQuery实现图片轮播效果的实例(推荐)
Oct 24 jQuery
微信小程序日历效果
Dec 29 Javascript
JS前端监控采集用户行为的N种姿势
Jul 23 Javascript
AngularJS表格样式简单设置方法示例
Mar 03 #Javascript
AngularJS表格添加序号的方法
Mar 03 #Javascript
JS实现双击内容变为可编辑状态
Mar 03 #Javascript
jquery表单验证实例仿Toast提示效果
Mar 03 #Javascript
JavaScript的for循环中嵌套一个点击事件的问题解决
Mar 03 #Javascript
JavaScript控制输入框中只能输入中文、数字和英文的方法【基于正则实现】
Mar 03 #Javascript
angularjs实现下拉列表的选中事件示例
Mar 03 #Javascript
You might like
锁定年轻人的双倍活力 星巴克推出星倍醇即饮浓咖啡
2021/03/03 咖啡文化
php中转义mysql语句的实现代码
2011/06/24 PHP
解析PHP SPL标准库的用法(遍历目录,查找固定条件的文件)
2013/06/18 PHP
常见的5个PHP编码小陋习以及优化实例讲解
2021/02/27 PHP
jquery autocomplete自动完成插件的的使用方法
2010/08/07 Javascript
qq悬浮代码(兼容各个浏览器)
2014/01/29 Javascript
Jquery动态添加及删除页面节点元素示例代码
2014/06/16 Javascript
JS实现仿Windows经典风格的选项卡Tab切换代码
2015/10/20 Javascript
基于JavaScript判断浏览器到底是关闭还是刷新(超准确)
2016/02/01 Javascript
javascript闭包概念简单解析(推荐)
2016/06/03 Javascript
JS实现线性表的顺序表示方法示例【经典数据结构】
2017/04/11 Javascript
JS实现的简单四则运算计算器功能示例
2017/09/27 Javascript
Auto.js自动收取自己和好友蚂蚁森林能量脚本
2018/06/28 Javascript
Vue组件之单向数据流的解决方法
2018/11/10 Javascript
微信内置浏览器图片查看器的代码实例
2019/10/08 Javascript
vue 验证码界面实现点击后标灰并设置div按钮不可点击状态
2019/10/28 Javascript
javascript canvas API内容整理
2020/02/16 Javascript
JS正则表达式验证密码强度
2020/03/18 Javascript
详解Howler.js Web音频播放终极解决方案
2020/08/23 Javascript
Python去除列表中重复元素的方法
2015/03/20 Python
Python实现的数据结构与算法之链表详解
2015/04/22 Python
Python实现队列的方法
2015/05/26 Python
Python实现输出程序执行进度百分比的方法
2017/09/16 Python
Python批量提取PDF文件中文本的脚本
2018/03/14 Python
Python 写入训练日志文件并控制台输出解析
2019/08/13 Python
python数据库编程 Mysql实现通讯录
2020/03/27 Python
对python中arange()和linspace()的区别说明
2020/05/03 Python
python中tab键是什么意思
2020/06/18 Python
python中判断文件结束符的具体方法
2020/08/04 Python
Django返回HTML文件的实现方法
2020/09/17 Python
python实现简单遗传算法
2020/09/18 Python
HTML5进度条特效
2014/12/18 HTML / CSS
高级电工工作职责
2013/11/21 职场文书
我心目中的好老师活动方案
2014/08/19 职场文书
社区服务活动感想
2015/08/11 职场文书
2016年读书月活动总结范文
2016/04/06 职场文书