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 方法大全方便学习参考
Feb 25 Javascript
菜鸟javascript基础整理1
Dec 06 Javascript
选择器中含有空格在使用示例及注意事项
Jul 31 Javascript
JS远程获取网页源代码实例
Sep 05 Javascript
JQuery each打印JS对象的方法
Nov 13 Javascript
原生javascript实现Tab选项卡切换功能
Jan 12 Javascript
玩转NODE.JS(四)-搭建简单的聊天室的代码
Nov 11 Javascript
Node+Express+MongoDB实现登录注册功能实例
Apr 23 Javascript
JavaScript数组_动力节点Java学院整理
Jun 26 Javascript
webpack+vue-cli项目中引入外部非模块格式js的方法
Sep 28 Javascript
跟混乱的页面弹窗说再见
Apr 11 Javascript
使用 Jest 和 Supertest 进行接口端点测试实例详解
Apr 25 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/02 无线电
打造超酷的PHP数据饼图效果实现代码
2011/11/23 PHP
php另类上传图片的方法(PHP用Socket上传图片)
2013/10/30 PHP
php获取根域名方法汇总
2014/10/28 PHP
yii2 RBAC使用DbManager实现后台权限判断的方法
2016/07/23 PHP
php数据序列化测试实例详解
2017/08/12 PHP
Javascript 文件夹选择框的两种解决方案
2009/07/01 Javascript
在jquery中处理带有命名空间的XML数据
2011/06/13 Javascript
js弹出模式对话框,并接收回传值的方法
2013/03/12 Javascript
jQuery获取动态生成的元素示例
2014/06/15 Javascript
Javascript控制div属性动态变化实例分析
2015/10/08 Javascript
用jQuery实现可输入多选下拉组合框实例代码
2017/01/18 Javascript
微信小程序tabbar不显示解决办法
2017/06/08 Javascript
jQuery扇形定时器插件pietimer使用方法详解
2017/07/18 jQuery
js实现点击图片在屏幕中间弹出放大效果
2019/09/11 Javascript
JavaScript前端开发时数值运算的小技巧
2020/07/28 Javascript
Vue.js原理分析之nextTick实现详解
2020/09/07 Javascript
el-form 多层级表单的实现示例
2020/09/10 Javascript
全面解读Python Web开发框架Django
2014/06/30 Python
Python爬虫实例爬取网站搞笑段子
2017/11/08 Python
python微信公众号开发简单流程
2018/03/23 Python
python实现雨滴下落到地面效果
2018/06/21 Python
Python中使用遍历在列表中添加字典遇到的坑
2019/02/27 Python
检测tensorflow是否使用gpu进行计算的方式
2020/02/03 Python
TensorFlow加载模型时出错的解决方式
2020/02/06 Python
Python计算矩阵的和积的实例详解
2020/09/10 Python
python用tkinter实现一个gui的翻译工具
2020/10/26 Python
切尔西足球俱乐部官方网上商店:Chelsea FC
2019/06/17 全球购物
英国名牌男装店:Standout
2021/02/17 全球购物
物业管理应届生求职信
2013/10/28 职场文书
父亲生日宴会答谢词
2014/01/10 职场文书
高职教师先进事迹材料
2014/08/24 职场文书
法人单位授权委托书范文
2014/10/06 职场文书
公司辞职信模板
2015/05/13 职场文书
导游词之峨眉乐山/兵马俑/北京故宫御花园
2019/09/03 职场文书
聊聊配置 Nginx 访问与错误日志的问题
2022/05/25 Servers