原作者目前已經停止對該組件的更新,但是因為適合於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
