后台管理页面,jqGrid框架使用

之前做后台管理页面是用的 jquery+LayUI,样式什么的,分页表格啊,表单之类的全是LayUI搞定。

不过现在觉得 LayUI还是有点混乱。

然后最近在做一个新的后台管理页面,是用的 jquery + jqGrid + bootstrap + fa。

我感觉jqGrid还是用起来很舒服,虽然它仅仅是针对 分页表格。

但是一开始用的时候,因为很多方法和属性不知道,所以觉得用起来不是那么方便,到后来慢慢了解了,觉得用起来很清晰很方便。

这里记录 jqGrid 的一些用法。

首先写一个<table> 表格和一个div分页

<div class="box-body">
                        <table id="gridTable2" class="table table-bordered table-hover"></table>
                        <div id="gridPager2"></div>
</div>

然后js,得到数据并显示

            jqGrid("#gridTable2", {
                url: apiBaseUrl + "layout/getallmodule"+"?layoutId="+layoutId,
                mtype: "GET",
                datatype: "json",
                styleUI: 'Bootstrap',
                autowidth: true,
                height: "100%",
                multiselect: true,
                colNames: ['自定义Id', '名称', '介绍', '路由连接', '排序值', '埋点页面', 'api版本', '操作'],
                colModel: [
                    { name: 'moduleId', index: 'moduleId', width: 150, sortable: false},
                    { name: 'name', index: 'name', width: 150, hidden: true },
                    { name: 'intro', index: 'intro', width: 150, hidden: true },
                    { name: 'url', index: 'url', width: 100, sortable: false},
                    { name: 'sequence', index: 'sequence', width: 50 },
                    { name: 'page', index: 'page', width: 100, sortable: false},
                    { name: 'apiVersion', index: 'apiVersion', width: 100, sortable: false},
                    {
                        name: 'operation', index: 'operation', width: 150, sortable: false, formatter: function (cellvalue, options, row) {
                            var mid = "'" + row.moduleId + "'";
                            return '<a href="javascript:btnEdit(' + mid + ')" class="btn btn-primary" style="width:100px" ><i class="fa fa-pencil-square-o"></i>编辑</a>'
                        }
                    }
                ],
                rowNum: 10,
                rowList: [10, 30, 50, 100],
                pager: '#gridPager2',
                sortname: 'id',
                sortorder: "desc",
            });

表格刷新用:

$("#gridTable2").trigger('reloadGrid');

如果开启多选,如何得到选中的数据,比如这里我想拿到每条数据的在数据库中的主键值,用于批量删除等

var rowId = $("#gridTable2").jqGrid('getGridParam', 'selarrrow'); //得到选中的标记行id(jqGrid的东西)
var row = [];
for (var i = 0; i < rowId.length; i++) {
                            var one = $("#gridTable2").jqGrid('getRowData', rowId[i]); //得到某个标记行的数据
                            row.push("'"+one.moduleId+"'"); //取得某列数据,可为隐藏列
}
var moduleids = row.join(',');

当删除时碰到特殊情况,比如第二页只有一条数据,删除之后,刷新表格要显示到第一页,不然默认是第二页会造成显示错误。

                                var curcount = $('#gridTable2').jqGrid("getRowData").length; //当前页几条数据
                                    var curpage = $("#gridTable2").jqGrid("getGridParam", "page"); //当前为第几页
                                    if (curpage > 1 && curcount == 1) {
                                        $("#gridTable2").jqGrid('setGridParam', {
                                            page: curpage-1
                                        }).trigger('reloadGrid');
                                    } else {
                                        $("#gridTable2").trigger('reloadGrid');
                                    }

 

以下记录一些链接,方便查询搜索:

jqGrid用法:  https://blog.mn886.net/jqGrid/

fa图标库:  http://www.fontawesome.com.cn/faicons/

bootstrap用法:  https://v3.bootcss.com/css/#tables

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值