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 相关文章推荐
jquery仿京东导航/仿淘宝商城左侧分类导航下拉菜单效果
Apr 24 Javascript
js 本地预览的简单实现方法
Feb 18 Javascript
JavaScript中Cookie操作实例
Jan 09 Javascript
JQuery实现动态适时改变字体颜色的方法
Mar 10 Javascript
浅谈JSON.parse()和JSON.stringify()
Jul 14 Javascript
jQuery实现ToolTip元素定位显示功能示例
Nov 23 Javascript
JS简单实现移动端日历功能示例
Dec 28 Javascript
JavaScript使用正则表达式获取全部分组内容的方法示例
Jan 17 Javascript
node.js操作mysql简单实例
May 25 Javascript
JavaScript学习笔记之数组基本操作示例
Jan 09 Javascript
json数据格式常见操作示例
Jun 13 Javascript
vue中选中多个选项并且改变选中的样式的实例代码
Sep 16 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
高分R级DC动画剧《哈莉·奎茵》第二季正式预告首发
2020/04/09 欧美动漫
php中json_decode()和json_encode()的使用方法
2012/06/04 PHP
使用PHP求两个文件的相对路径
2013/06/20 PHP
JS获取IUSR_机器名和IWAM_机器名帐号的密码
2006/12/06 Javascript
js CSS操作方法集合
2008/10/31 Javascript
Prototype 学习 工具函数学习($方法)
2009/07/12 Javascript
学习ExtJS TextField常用方法
2009/10/07 Javascript
JavaScript 变量作用域分析
2011/07/04 Javascript
基于JQuery实现鼠标点击文本框显示隐藏提示文本
2012/02/23 Javascript
探讨jQuery的ajax使用场景(c#)
2013/12/03 Javascript
关于页面嵌入swf覆盖div层的问题的解决方法
2014/02/11 Javascript
jquery动态添加元素事件失效问题解决方法
2014/05/23 Javascript
jQuery实现表格颜色交替显示的方法
2015/03/09 Javascript
javascript实现在线客服效果
2015/07/15 Javascript
JS实现的5级联动Select下拉选择框实例
2015/08/17 Javascript
使用重写url机制实现验证码换一张功能
2017/08/01 Javascript
JS编写兼容IE6,7,8浏览器无缝自动轮播
2018/10/12 Javascript
vue+iview 实现可编辑表格的示例代码
2018/10/31 Javascript
深入浅出了解Node.js Streams
2019/05/27 Javascript
vuex 实现getter值赋值给vue组件里的data示例
2019/11/05 Javascript
webpack+vue.js构建前端工程化的详细教程
2020/05/10 Javascript
布同 Python中文问题解决方法(总结了多位前人经验,初学者必看)
2011/03/13 Python
跟老齐学Python之再深点,更懂list
2014/09/20 Python
python根据出生日期返回年龄的方法
2015/03/26 Python
Python functools模块学习总结
2015/05/09 Python
Python自动化测试ConfigParser模块读写配置文件
2016/08/15 Python
详解python发送各类邮件的主要方法
2016/12/22 Python
opencv python 2D直方图的示例代码
2018/07/20 Python
Python爬虫学习之翻译小程序
2019/07/30 Python
python3.8动态人脸识别的实现示例
2020/09/21 Python
python中实现栈的三种方法
2020/12/19 Python
英国领先的在线鱼贩:The Fish Society
2020/08/12 全球购物
linux面试题参考答案(10)
2016/10/26 面试题
自我评价怎么写好呢?
2013/12/05 职场文书
承诺书的格式范文
2014/03/28 职场文书
小学生清明节演讲稿
2014/09/05 职场文书