Html -- 表格控件 jqGrid 學習

1、基本引用

1、jquery
<script src="plugins/jquery/jquery-3.4.1.min.js" type="text/javascript" charset="utf-8"></script>

2、fontawesome
<link rel="stylesheet" type="text/css" href="plugins/fontawesome-5.11.2/css/all.min.css"/>

3、bootstrap
<link rel="stylesheet" type="text/css" href="plugins/bootstrap-4.3.1/css/bootstrap.min.css"/>
<script src="plugins/bootstrap-4.3.1/js/bootstrap.min.js" type="text/javascript" charset="utf-8"></script>

4、ui.jqgrid-bootstrap4
<link rel="stylesheet" type="text/css" href="plugins/jqGrid/css/ui.jqgrid-bootstrap4.css"/>

5、jqgrid
<script src="plugins/jqGrid/js/i18n/grid.locale-cn.js" type="text/javascript" charset="utf-8"></script>
<script src="plugins/jqGrid/js/jquery.jqGrid.min.js" type="text/javascript" charset="utf-8"></script>

2、基本使用

<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <title></title>
        <script src="plugins/jquery/jquery-3.4.1.min.js" type="text/javascript" charset="utf-8"></script>
        <link rel="stylesheet" type="text/css" href="plugins/fontawesome-5.11.2/css/all.min.css"/>
        
        <link rel="stylesheet" type="text/css" href="plugins/bootstrap-4.3.1/css/bootstrap.min.css"/>
        <script src="plugins/bootstrap-4.3.1/js/bootstrap.min.js" type="text/javascript" charset="utf-8"></script>
        
        <link rel="stylesheet" type="text/css" href="plugins/jqGrid/css/ui.jqgrid-bootstrap4.css"/>
        <script src="plugins/jqGrid/js/i18n/grid.locale-cn.js" type="text/javascript" charset="utf-8"></script>
        <script src="plugins/jqGrid/js/jquery.jqGrid.min.js" type="text/javascript" charset="utf-8"></script>
    </head>
    <body>
        <table id="grid"></table>
        <div id="pager"></div>
    </body>
    <script type="text/javascript">
        $.jgrid.defaults.styleUI = 'Bootstrap4';
        $.jgrid.defaults.iconSet = 'fontAwesome';
        
        $("#grid").jqGrid({
            datatype: 'json',
            url: 'data/data.json',
            regional: 'cn',
            colModel: [
                { name: 'name', label : '名稱' },
                { name: 'phone', label : '電話' }
            ],
            height: 'auto',
            autowidth: true,
            pager: '#pager',

            rownumbers: true,
            rownumWidth: 40,

            rowNum: 20,
            rowList: [10, 15, 25],
            viewrecords: true,
        })
    </script>
</html>

3、自定義返回數據格式

<script type="text/javascript">
    $("#grid").jqGrid({
        //... 省略 ...
        jsonReader : {
            root: "customRows",             //列表數據根節點
            page: "customPage",             //當前頁碼
            total: "customTotal",           //總頁數
            records: "customRecords",       //總條數
            
            id: "customId",                 //行唯一標識
            userdata: "customUserdata"      //返回用戶數據
        }
    })
</script>

返回數據格式
{
  "customTotal": "10",
  "customPage": "1",
  "customRecords": "20",
  "customUserdata": {
  	"username": "admin",
  	"password": "admin"
  },
  "customRows" : [
    {"customId" :"111", "name": "Bob", "phone": "232-532-6268", "addres":"address 1"},
    {"customId" :"222", "name": "Jeff", "phone": "365-267-8325", "addres":"address 2"}  
  ]
}

//獲取自定義數據方式
var customUserdata = $("#grid").jqGrid('getGridParam', 'userData');

4、自定義請求接口

<script type="text/javascript">
    $("#grid").jqGrid({
        //自定義請求
        datatype: function(postdata){
            var thegrid = this;
            $.ajax({
               url: 'data/data.json',
               dataType:"json",
               complete: function(data,stat){
                  if(stat=="success") {
                     thegrid.addJSONData(data.responseJSON);
                  }
               }
            });
        },
        //... 省略 ...
    })
</script>

5、行選中設置及事件

<script type="text/javascript">
    $("#grid").jqGrid({
        //... 省略 ...
        multiselect: true,
    })

    $("#grid").on("jqGridSelectRow", function(e, rowid, status){ });
		 
    $("#grid").on("jqGridSelectAll", function(e, rowids, status){ });
</script>

6、樹形表格

<style type="text/css">
    .tree-leaf{
        font-size: 10px;color: #1890ff;
        line-height: 24px !important;
    }
    .tree-minus{
        font-size: 16px;color: #1890ff;
        line-height: 20px !important;
    }
    .tree-plus{
        font-size: 16px;color: #1890ff;
        line-height: 20px !important;
    }
</style>

<script type="text/javascript">
    $.jgrid.defaults.styleUI = 'Bootstrap4';
    $.jgrid.defaults.iconSet = 'fontAwesome';
    $.jgrid.no_legacy_api = true;
    
    $("#grid").jqGrid({
        //... 省略 ...
        treeGrid: true,
        treeGridModel: 'adjacency',
        treedatatype: "json",
        tree_root_level: 0,
        treeIcons: {
            plus:'fa fa-caret-right',
            minus:'fa fa-caret-down',
            leaf:'fa fa-circle'
        },
        ExpandColumn : 'name',
        ExpandColClick: true,
        treeReader: {
            level_field: "treeLevel",   
            parent_id_field: "treeParentId",
            leaf_field: "treeLeaf",         
            expanded_field: "treeExpanded", 
            loaded_field: true,                         
        },
    })
</script>

//返回數據格式
[
    {
     "id": 1, "name": "系統管理", "url": "/sys/system", "sort": 10,
     "treeLevel": 1, "treeParentId": 0, "treeLeaf": false, "treeExpanded": true
    },
    {
     "id": 10, "name": "系統用戶", "url": "/sys/user", "sort": 10,
     "treeLevel": 2, "treeParentId": 1, "treeLeaf": true, "treeExpanded": true
    },
    {
     "id": 20, "name": "角色管理", "url": "/sys/role", "sort": 10,
     "treeLevel": 2, "treeParentId": 1, "treeLeaf": true, "treeExpanded": true
    }
]

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章