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 相关文章推荐
为调试JavaScript添加输出窗口的代码
Feb 07 Javascript
jquery 回车事件实现代码
Aug 23 Javascript
javascript实现禁止复制网页内容
Dec 16 Javascript
JS实现鼠标滑过折叠与展开菜单效果代码
Sep 06 Javascript
js实现的后台左侧管理菜单代码
Sep 11 Javascript
AngularJS中的Directive自定义一个表格
Jan 25 Javascript
jQuery常用的一些技巧汇总
Mar 26 Javascript
全面解析Angular中$Apply()及$Digest()的区别
Aug 04 Javascript
js数组与字符串常用方法总结
Jan 13 Javascript
JS正则验证多个邮箱完整实例【邮箱用分号隔开】
Apr 19 Javascript
javascript设计模式 ? 命令模式原理与用法实例分析
Apr 20 Javascript
JavaScript实现浏览器网页自动滚动并点击的示例代码
Dec 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
php 常用类汇总 推荐收藏
2010/05/13 PHP
php快递单号查询接口使用示例
2014/05/05 PHP
神盾加密解密教程(二)PHP 神盾解密
2014/06/08 PHP
Yii2前后台分离及migrate使用(七)
2016/05/04 PHP
JQuery FlexiGrid的asp.net完美解决方案 dotNetFlexGrid-.Net原生的异步表格控件
2010/09/12 Javascript
jquery图片放大镜功能的实例代码
2013/03/26 Javascript
JS限制Textarea文本域字符个数的具体实现
2013/08/02 Javascript
Javascript浮点数乘积运算出现多位小数的解决方法
2014/02/17 Javascript
js常用数组操作方法简明总结
2014/06/20 Javascript
JavaScript中var关键字的使用详解
2015/08/14 Javascript
Bootstrap表格使用方法详解
2017/02/17 Javascript
JS 调试中常见的报错问题解决方法
2017/05/20 Javascript
js获取地址栏参数的两种方法
2017/06/27 Javascript
Angular中支持SCSS的方法
2017/11/18 Javascript
three.js实现3D模型展示的示例代码
2017/12/31 Javascript
快速处理vue渲染前的显示问题
2018/03/05 Javascript
举例讲解Python中的死锁、可重入锁和互斥锁
2015/11/05 Python
Django处理Ajax发送的Get请求代码详解
2019/07/29 Python
python字符串常用方法及文件简单读写的操作方法
2020/03/04 Python
python查找特定名称文件并按序号、文件名分行打印输出的方法
2020/04/24 Python
Python使用20行代码实现微信聊天机器人
2020/06/05 Python
HTML5 CSS3打造相册效果附源码下载
2014/06/16 HTML / CSS
伯利陶器:Burleigh Pottery
2018/01/03 全球购物
英国游戏机和游戏购物网站:365games.co.uk
2018/06/18 全球购物
英国卫浴商店:Ergonomic Design
2019/09/22 全球购物
什么是makefile? 如何编写makefile?
2013/01/02 面试题
历史专业毕业生的自我鉴定
2013/11/15 职场文书
《学会合作》教学反思
2014/04/12 职场文书
保护环境倡议书范文
2014/05/13 职场文书
校园文化标语
2014/06/18 职场文书
学习优秀共产党员先进事迹思想报告
2014/09/17 职场文书
2014年小学美术工作总结
2014/12/20 职场文书
终止劳动合同通知书
2015/04/16 职场文书
2015年艾滋病防治工作总结
2015/05/22 职场文书
2019年度政务公开考核工作总结模板
2019/11/11 职场文书
Flink 侧流输出源码示例解析
2022/09/23 Servers