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 相关文章推荐
dojo 之基础篇(二)之从服务器读取数据
Mar 24 Javascript
基于Jquery制作的幻灯片图集效果打包下载
Feb 12 Javascript
JavaScript学习心得之概述
Jan 20 Javascript
使用Jquery实现每日签到功能
Apr 03 Javascript
基于javascript html5实现3D翻书特效
Mar 14 Javascript
jQuery实现HTML表格单元格的合并功能
Apr 06 Javascript
老生常谈遮罩层 滚动条的问题
Apr 29 Javascript
JS常用字符串方法(推荐)
Jan 15 Javascript
js监听input输入框值的实时变化实例
Jan 26 Javascript
详解Vue开发微信H5微信分享签名失败问题解决方案
Aug 09 Javascript
详解webpack编译速度提升之DllPlugin
Feb 05 Javascript
原生JS使用Canvas实现拖拽式绘图功能
Jun 05 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
cmd下运行php脚本
2008/11/25 PHP
IP138 IP地址查询小偷实现代码
2010/02/15 PHP
PHP版 汉字转码的实现详解
2013/06/09 PHP
PHP中鲜为人知的10个函数
2014/02/28 PHP
php中实现记住密码下次自动登录的例子
2014/11/06 PHP
PHP使用递归生成文章树
2015/04/21 PHP
完美解决phpexcel导出到xls文件出现乱码的问题
2016/10/29 PHP
PHP-FPM 设置多pool及配置文件重写操作示例
2019/10/02 PHP
关于js datetime的那点事
2011/11/15 Javascript
JS 添加千分位与去掉千分位的示例
2013/07/11 Javascript
jquery设置元素的readonly和disabled的写法
2013/09/22 Javascript
js函数返回多个返回值的示例代码
2013/11/05 Javascript
struts2+jquery组合验证注册用户是否存在
2014/04/30 Javascript
JavaScript中的包装对象介绍
2015/01/27 Javascript
jQuery插件实现静态HTML验证码校验
2015/11/06 Javascript
修改Jquery Dialog 位置的实现方法
2016/08/26 Javascript
bootstrap基本配置_动力节点Java学院整理
2017/07/14 Javascript
angularjs实现柱状图动态加载的示例
2017/12/11 Javascript
vue.js简单配置axios的方法详解
2017/12/13 Javascript
详解JavaScript 中 if / if...else...替换方式
2018/07/15 Javascript
vue+axios+element ui 实现全局loading加载示例
2018/09/11 Javascript
详解关于Vue版本不匹配问题(Vue packages version mismatch)
2018/09/17 Javascript
React Hooks的深入理解与使用
2018/11/12 Javascript
Layui 数据表格批量删除和多条件搜索的实例
2019/09/04 Javascript
JS闭包原理及其使用场景解析
2020/12/03 Javascript
[08:44]DOTA2发布会群星聚首 我们都是刀塔人
2014/03/21 DOTA
使用Python写CUDA程序的方法
2017/03/27 Python
将python代码和注释分离的方法
2018/04/21 Python
关于python中plt.hist参数的使用详解
2019/11/28 Python
Pytorch 实现数据集自定义读取
2020/01/18 Python
使用Python制作新型冠状病毒实时疫情图
2020/01/28 Python
PyQt使用QPropertyAnimation开发简单动画
2020/04/02 Python
卡骆驰英国官网:Crocs英国
2019/08/22 全球购物
2014道德模范事迹材料
2014/02/16 职场文书
中班上学期幼儿评语
2014/04/30 职场文书
关于军训的感想
2015/08/07 职场文书