EasyUI Datagrid 数据网格

前端用easyUI开发时,官方给的文档指导太少,网上找的又很慢,因此,我总结了一个后台返回数据后,用easyUI生成表格的方法,可编辑可分页:

 1 function paginationTable(id, height, pageSize, field, title, data, num) {
 2     for (var i = 0; i < field.length; i++) {
 3         liensAr.push({field: field[i], title: title[i], width: $(this).width() * 0.2, editor: 'text', align: 'center'});
 4     }
 5     tableArr.push(liensAr)
 6     var columns = JSON.parse(JSON.stringify(tableArr));
 7     if (num > pageSize) {
 8         $("#" + id).datagrid({//tab_openSub_mySub_tb为table标签的id
 9             pagination: true, //显示分页栏
10             height: height,
11             pageSize: pageSize,//分页条件
12             singleSelect: true,
13             columns: columns,
14             striped: true,
15             rownumbers: true
16         });
17 
18         $("#" + id).datagrid("loadData", data.slice(0, pageSize));
19 
20         var pager = $("#" + id).datagrid("getPager");//分页代码块
21         pager.pagination({
22             total: data.length,
23             onSelectPage: function (pageNo, pageSize) {
24                 var start = (pageNo - 1) * pageSize;
25                 var end = start + pageSize;
26                 $("#" + id).datagrid("loadData", data.slice(start, end));
27                 pager.pagination('refresh', {
28                     total: data.length,
29                     pageNumber: pageNo
30                 });
31             }
32         });
33         liensAr = [];
34         tableArr = [];
35     } else {
36         $("#" + id).datagrid({//tab_openSub_mySub_tb为table标签的id
37             height: height,
38             singleSelect: true,
39             columns: columns,
40             striped: true,
41             rownumbers: true
42         });
43 
44         $("#" + id).datagrid('loadData', data);
45         liensAr = [];
46         tableArr = [];
47     }
48 }

其中的参数:

id : 前端页面表格的id

height : 表格控件的高度 (如果有分页操作 , 表格高度大于每页显示的最大高度的话 , 会不显示分页栏

pageSize : 每页最大行数

field : 从对象数组中取的属性

title : 对应 field , 表格表头上显示的每列的定义

data : 数据 对象数组

num : 数据的长度

例如:

<table id="table" data-options="fitColumns:true" class="easyui-datagrid" style="width:100%;height:100%;">

</table>
const data = [
    {
        "id" : 1,
        "name" : "aaa",
        "age" : 23,
        "city" : "shenyang"
    },
    {
        "id" : 2,
        "name" : "bbb",
        "age" : 22,
        "city" : "beijing"
    },
    {
        "id" : 3,
        "name" : "ccc",
        "age" : 24,
        "city" : "shanghai"
    }
]

此时,如果想将以上数据生成表格

只需要调用上面的

paginationTable(id, height, pageSize, field, title, data, num)

方法

paginationTable("table",300,10, ['name','age','city'], ['名字','年龄','城市'], data, data.length)

如果数据没达到表格分页最少显示行数 , 会自动取消分页 ; 数据改变之后 , 如果数量达到分页要求 , 会自动分页




 

 

posted @ 2022-03-04 09:25  zxyzzz  阅读(305)  评论(3编辑  收藏  举报