原作者目前已经停止对该组件的更新,但是因为适合于Layui风格,并且暂时layui的组件还没有实现该功能,所以稍微修改了下适用于最新的layui2.0框架
该源码总共两个组件,grid 和 treegrid 代码主要修改了分页,之前的分页函数已经不适用。另外修改了Ajax请求的类型参数,改成post传输以及通过json格式传输参数数据。
首先是展示grid功能

示例:
<div id="data_table" style="padding-top:10px;"> </div> <div id="data_pager"></div>
<script id="itemTableTpl" type="text/html"> <table class="layui-table"> <col width="300px" /> <col width="80px" /> <col width="300px" /> <col width="400px" /> <col width="100px" /> <thead> <tr> <th>角色名称</th> <th>角色ID</th> <th>所属公司</th> <th>备注</th> <th>创建时间</th> </tr> </thead> <tbody> {{# layui.each(d.rows,function(index,r){ }} <tr> <td><input type="checkbox" />{{r.rolename}}</td> <td>{{r.roleid}}</td> <td>{{r.companyname || ''}}</td> <td>{{r.remark || ''}}</td> <td>{{r.createdwhenfmt}}</td> </tr> {{# }); }} </tbody> </table> </script>
<script type="text/javascript">
var tree1;
var treegrid;
//查询
function search() {
layui.config({ base: '../../Scripts/Layui/extend/' }).use(['element', 'laytpl', 'grid'], function () {
var laytpl = layui.laytpl;
treegrid = layui.grid;
treegrid.config.render = function (viewid, data) {
var view = document.getElementById(viewid).innerHTML;
return laytpl(view).render(data) || '';
};
var search_rolename = $("#rolename").val();
var options = {
elem: 'data_table',
view: 'itemTableTpl',
url: 'Role.aspx/GetList',
searchData: { "rolename": search_rolename, page: 1, pageSize: 4 },
rowid: 'roleid',
page: 1,
pageSize: 4,
record: true,
singleSelect: true,
pagerID: 'data_pager'
};
tree1 = treegrid.createNew(options);
tree1.build();
});
}
</script>
其次是树形表格:

示例:
<div id="menu_table" style="padding-top:10px;"> </div>
<script id="menuTableTpl" type="text/html"> <table class="layui-table"> <col width="160px" /> <col width="80px" /> <col width="160px" /> <col width="120px" /> <col width="60px" /> <col width="80px" /> <col width="200px" /> <col width="300px" /> <thead> <tr> <th>菜单名称</th> <th>菜单ID</th> <th>上级菜单</th> <th>图标</th> <th>类型</th> <th>排序号</th> <th>菜单URL</th> <th>授权标识</th> </tr> </thead> <tbody> {{# layui.each(d.rows,function(index,r){ }} <tr> <td><input type="checkbox" />{{r.menuname}}</td> <td>{{r.menuid}}</td> <td>{{r.parentmenuname || ''}}</td> <td>{{r.icon || ''}}</td> <td> {{# if(r.menutype == 0){ }} <span class="layui-btn layui-btn-xs layui-bg-blue">目录</span> {{# } }} {{# if(r.menutype == 1){ }} <span class="layui-btn layui-btn-xs layui-bg-green">菜单</span> {{# } }} {{# if(r.menutype == 2){ }} <span class="layui-btn layui-btn-xs layui-bg-orange">按钮</span> {{# } }} </td> <td>{{r.orderflag || ''}}</td> <td>{{r.url || ''}}</td> <td>{{r.authcodegroup || ''}}</td> </tr> {{# }); }} </tbody> </table> </script>
<script type="text/javascript">
var tree1;
//菜单列表
var g_menu = <%= GetJSON_MenuList() %>;
layui.config({ base: '../../Scripts/Layui/extend/' }).use(['element','laytpl', 'treegrid'], function () {
var laytpl = layui.laytpl,
treegrid = layui.treegrid;
treegrid.config.render = function (viewid, data) {
var view = document.getElementById(viewid).innerHTML;
return laytpl(view).render(data) || '';
};
tree1=treegrid.createNew({
elem: 'menu_table',
view: 'menuTableTpl',
data: { rows: g_menu },
id:'menuid',
parentid: 'parentmenuid',
singleSelect: true
});
tree1.build();
});
</script>
主要参数还是参考原作者的文档,地址:http://www.layuispa.com/
我简单修改后的源码下载地址:https://files.cnblogs.com/files/hustsay23/layui2.0_treegrid.rar