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 相关文章推荐
ajax与302响应代码测试
Oct 23 Javascript
jQuery操作input值的各种方法总结
Nov 21 Javascript
利用js动态添加删除table行的示例代码
Dec 16 Javascript
bootstrap改变按钮加载状态
Dec 01 Javascript
Jquery实现地铁线路指示灯提示牌效果的方法
Mar 02 Javascript
animate 实现滑动切换效果【实例代码】
May 05 Javascript
jQuery中Datatables增加跳转到指定页功能
Feb 08 Javascript
Vue 父子组件、组件间通信
Mar 08 Javascript
纯js实现图片匀速淡入淡出效果
Aug 22 Javascript
js实现黑白div块画空心的图形
Dec 13 Javascript
vue组件之间的数据传递方法详解
Apr 19 Javascript
Vue将页面导出为图片或者PDF
Aug 17 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学习笔记 数组的常用函数
2011/06/13 PHP
解决CodeIgniter伪静态失效
2014/06/09 PHP
PHP生成随机密码方法汇总
2015/08/27 PHP
Zend Framework教程之动作的基类Zend_Controller_Action详解
2016/03/07 PHP
详解php几行代码实现CSV格式文件输出
2017/07/01 PHP
PHP基于PDO扩展操作mysql数据库示例
2018/12/24 PHP
JS中彻底删除JSON对象组成的数组中的元素
2020/09/22 PHP
jQuery DIV弹出效果实现代码
2009/07/03 Javascript
javascript 模拟点击广告
2010/01/02 Javascript
JS中的substring和substr函数的区别说明
2013/05/07 Javascript
js判断选择的时间是否大于今天的代码
2013/08/20 Javascript
文本框(input)获取焦点(onfocus)时样式改变的示例代码
2014/01/10 Javascript
javascript event在FF和IE的兼容传参心得(绝对好用)
2014/07/10 Javascript
使用BootStrapValidator完成前端输入验证
2016/09/28 Javascript
详解Nodejs 通过 fs.createWriteStream 保存文件
2017/10/10 NodeJs
layui表格数据复选框回显设置方法
2019/09/13 Javascript
Node.js操作MongoDB数据库实例分析
2020/01/19 Javascript
vue实现员工信息录入功能
2020/06/11 Javascript
[41:52]2018DOTA2亚洲邀请赛3月29日 小组赛A组 TNC VS OpTic
2018/03/30 DOTA
从头学Python之编写可执行的.py文件
2017/11/28 Python
Python使用requests及BeautifulSoup构建爬虫实例代码
2018/01/24 Python
python贪婪匹配以及多行匹配的实例讲解
2018/04/19 Python
使用11行Python代码盗取了室友的U盘内容
2018/10/23 Python
python实现二维插值的三维显示
2018/12/17 Python
Python判断有效的数独算法示例
2019/02/23 Python
Python字符串通过'+'和join函数拼接新字符串的性能测试比较
2019/03/05 Python
Python collections模块使用方法详解
2019/08/28 Python
关于Python Tkinter Button控件command传参问题的解决方式
2020/03/04 Python
Pycharm制作搞怪弹窗的实现代码
2021/02/19 Python
联谊活动策划书
2014/01/26 职场文书
2014报到证办理个人委托书
2014/10/08 职场文书
中学后勤工作总结2015
2015/07/22 职场文书
小学家庭教育心得体会
2016/01/14 职场文书
学校2016年九九重阳节活动总结
2016/04/01 职场文书
《地。-关于地球的运动-》单行本第七集上市,小说家朝井辽献上期待又害怕的推荐文
2022/03/31 日漫
win server2012 r2服务器共享文件夹如何设置
2022/06/21 Servers