Bootstrap-jqgrid学习(十五)

通过复制bootstrap代码进行开发,代码非常多,其实bootstrap重点在于它的表格,以后作为管理系统而言,都是对数据完成基本的功能,CRUD

做分页,查询,修改,自己去做的话代价很大,bootstrap只是做了样式的美化,没有给我们提供更加丰富的功能帮助我们处理增删改查

在企业用bootstrap做页面时,为了近一个步增加开发效率,引用一个 jquery的插件叫:jqgrid:数据表格,下面的都不需要我们自己手写了,交给插件,包括分页,查询增删改查等这些javascript代码,我们只关心后台的数据交互,jqgrid与后台交互,使用的是ajax的方式,也就是说它要后台要的是字符串,那么就不允许后台有任何的页面跳转

jqgrid功能非常强大,是一个老牌的jquery数据表格了,帮助我们一次性的构建一个简洁的数据表格,帮我们完成增删改查,页面标签仅仅需要写一到两行,js代码相对写的多一点,jqgrid是一个jquery插件,专注于js 

英文网站:

 中文网站:

 下载jqgrid的依赖:主要使用下面的文件

 引入到项目中:

jqgrid的文件引入顺序: 

 进入页面检查是否引入成功:

 不飘红就是引入成功:

用到的参数: 

 属性:

请求地址:

urlstring获取数据的地址

 返回数据类型:

datatypestring从服务器端返回的数据类型,默认xml。可选类型:xml,local,json,jsonnp,script,xmlstring,jsonstring,clientside

请求方式:

mtypestringajax提交方式。POST或者GET,默认GET

 表格的名称:与colModel对应

colNamesArray列显示名称,是一个数组对象

列的显示名称:

colModelArray常用到的属性:name 列显示的名称;index 传到服务器端用来排序用的列名称;width 列宽度;align 对齐方式;sortable 是否可以排序

 表格属性:

<script>
        $(function(){
            /*
            * jqgrid属性使用方式:将属性以对象的方式作为jqgrid的参数进行传递即可,对象中的属性名:属性值书写
            * 2.jqgrid中的列属性方式
            * */
            //初始化表格
            $("#userList").jqGrid({//属性
                styleUI:"Bootstrap",//用来指定jqgrid的主题样式
                url: "./list.json",//用来远程获取数据的地址 json格式的数据   相当于$.post() ajax请求后台控制器  这里模仿后台让它访问json文件
                datatype: "json", //用来指定数据返回的数据类型默认是xml
                mtype:"POST",//请求方式,默认get请求
                colNames:["编号","姓名","年龄","生日"],//用来指定标题列的名称  colNames必须和colModel成对出现
                colModel:[
                    {name:"id"},
                    {name:"name"},
                    {name:"age"},
                    {name:"bir"},
                ],

            });
        });
    </script>

列属性:

 事件:

方法:

 首先需要一个table:

<!--表格标签 1.jquery插件 属性:(文档中是初始化参数大全) 对象{}  事件:  方法:  -->
<table id="userList"></table>

利用js进行调用jqgrid:

<script>
        $(function(){
            /*
            * jqgrid属性使用方式:将属性以对象的方式作为jqgrid的参数进行传递即可,对象中的属性名:属性值书写
            * 2.jqgrid中的列属性方式
            * */
            //初始化表格
            $("#userList").jqGrid({//属性
                styleUI:"Bootstrap",//用来指定jqgrid的主题样式
                url: "./list.json",//用来远程获取数据的地址 json格式的数据   相当于$.post() ajax请求后台控制器  这里模仿后台让它访问json文件
                datatype: "json", //用来指定数据返回的数据类型默认是xml
                mtype:"POST",//请求方式,默认get请求
                colNames:["编号","姓名","年龄","生日"],//用来指定标题列的名称  colNames必须和colModel成对出现
                colModel:[
                    {name:"id"},
                    {name:"name"},
                    {name:"age"},
                    {name:"bir"},
                ],

            });
        });
    </script>

 设置列属性:

对齐方式

alignstringleft, center, right.

 字段可编辑:

alignstringleft, center, right.

对数据进行二次渲染:对应的是一个函数

formattermixed对列进行格式化时设置的函数名或者类型 {name:’sex’,index:’sex’, align:’center’,width:60,editable:true,edittype:’select’,editoptions: {value:’0:待定;1:男;2:女’},formatter:function(cellvalue, options, rowObject){
var temp = “<img src=’/jqGrid/jquery-ui-1.7.2.custom/css/img/”
if(cellvalue==1){
temp = temp +”user-white.png”;
} else if(cellvalue==2){
temp = temp +”user-white-female.png”;
} else {
temp = temp + “user-silhouette.png”;
}
temp = temp + “‘ border=’0 ′ />”
return temp;
}},// 返回性别的图标。

 隐藏某列:

hidedlgboolean是否显示或者隐藏此列
hiddenboolean在初始化表格时是否要隐藏此列

 取哪个json中的数据作为这列的值:

namestring表格列的名称,所有关键字,保留字都不能作为名称使用包括subgrid, cb and rn.

 列的宽度是否可以改变大小:

resizableboolean是否可以被resizable

列的宽度:

widthnumber默认列的宽度,只能是象素值,不能是百分比

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>jqgrid第一个Demo</title>
    <!--css-->
    <!--引入bootstrap的css-->
    <link rel="stylesheet" href="../static/css/bootstrap.min.css">
    <!--引入jqgrid的核心css-->
    <link rel="stylesheet" href="../static/jqgrid/ui.jqgrid-bootstrap.css">

    <!--js-->
    <!--引入jQuery的文件-->
    <script src="../static/jq/jquery-3.6.0.js"></script>
    <!--引入jqgrid的核心js-->
    <script  src="../static/jqgrid/jquery.jqGrid.min.js"></script>
    <!--引入jqgrid的国际化js-->
    <script  src="../static/jqgrid/grid.locale-cn.js"></script>
    <!--引入bootstrap的js文件-->
    <script src="../static/js/bootstrap.min.js"></script>

    <script>
        $(function(){
            /*
            * jqgrid属性使用方式:将属性以对象的方式作为jqgrid的参数进行传递即可,对象中的属性名:属性值书写  ---对应网站初始化参数大全
            * 2.jqgrid中的列属性方式 列属性使用也是以对象的形式作为colModel的参数进行传递即可  --对应网站ColModel参数大全
            * */

            $("#userList").jqGrid({//属性
                //初始化表格
                styleUI:"Bootstrap",//用来指定jqgrid的主题样式
                url: "./list.json",//用来远程获取数据的地址 json格式的数据   相当于$.post() ajax请求后台控制器  这里模仿后台让它访问json文件
                datatype: "json", //用来指定数据返回的数据类型默认是xml
                mtype:"POST",//请求方式,默认get请求
                colNames:["编号","姓名","年龄","生日","部门"],//用来指定标题列的名称  colNames必须和colModel成对出现  一个表名对应一个{}
                colModel:[
                    {
                        name:"id",
                        align:"center",
                        //列隐藏
                        //hidedlg:true,
                        //hidden:true

                    },
                    {
                        name:"name",
                        //对齐
                        align:"center",
                        //其否可编辑
                        editable:true,
                        //是否可以改变大小
                        resizable:false,
                        //列的宽度
                        width:300
                    },
                    {
                        name:"age",
                        align:"center",
                        formatter:function(cellvalue, options, rowObject){//用来对数据进二次处理  cellvalue:这列的值 options:这列的Page对象  rowObject:这行的json数据对象
                            //原样渲染
                            //return cellvalue;
                            console.log(cellvalue);
                            console.log(options);
                            console.log(rowObject);
                            //渲染
                            if (cellvalue>23){
                                return "<font color='red'>"+cellvalue+"</font>";
                            }
                            return "<font color='green'>"+cellvalue+"</font>";


                        }
                    },
                    {
                        name:"bir",
                        align:"center"
                    },
                    {
                        //name:"dep.name",
                        name:"depName",
                        align:"center",
                        //使用formatter进行获取对象数据进行渲染
                        formatter:function(cellvalue, options, rowObject){
                            return rowObject.dep.name;
                        }
                    }
                ],

            });
        });
    </script>

</head>
<body>
<!--表格标签 1.jquery插件 属性:(文档中是初始化参数大全) 对象{}  事件:  方法:  -->
<table id="userList"></table>
</body>
</html>

list.json:

[
  {
    "id": "21",
    "name": "xiaochen",
    "age": 23,
    "bir": "2012-12-12",
    "dep": {
      "id": "222",
      "name": "财务部"
    }
  },
  {
    "id": "22",
    "name": "张三",
    "age": 40,
    "bir": "2012-12-12",
    "dep": {
      "id": "222",
      "name": "研发部"
    }
  },
  {
    "id": "23",
    "name": "王五",
    "age": 33,
    "bir": "2012-12-12",
    "dep": {
      "id": "222",
      "name": "技术部"
    }
  },
  {
    "id": "24",
    "name": "李四",
    "age": 50,
    "bir": "2012-12-12",
    "dep": {
      "id": "222",
      "name": "外交部"
    }
  }
]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

喵俺第一专栏

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值