zoukankan      html  css  js  c++  java
  • 修改适用于layui2.0框架的树形下拉表格treegrid

    原作者目前已经停止对该组件的更新,但是因为适合于Layui风格,并且暂时layui的组件还没有实现该功能,所以稍微修改了下适用于最新的layui2.0框架

    该源码总共两个组件,grid 和 treegrid  代码主要修改了分页,之前的分页函数已经不适用。另外修改了Ajax请求的类型参数,改成post传输以及通过json格式传输参数数据。

    首先是展示grid功能

    示例:

    <div id="data_table" style="padding-top:10px;">
    </div>
    <div id="data_pager"></div>
    表格和分页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>
    GRID的脚本代码

    其次是树形表格:

    示例:

    <div id="menu_table" style="padding-top:10px;">            
            </div>
    表格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>
    表格查询JS脚本

    主要参数还是参考原作者的文档,地址:http://www.layuispa.com/

    我简单修改后的源码下载地址:https://files.cnblogs.com/files/hustsay23/layui2.0_treegrid.rar

  • 相关阅读:
    与灵感之源的vb.net对应的SmartExcel的C#版本
    winform下提高control在UI中的响应速度
    做了一个petoolkit的gui版本,放几张图上来。
    Reflection中对于out类型的获取
    对企业管理软件“代码后”问题的思考
    看了dannyr的java中文类,自己写了一个。
    所有的WMI可以使用的class
    庆祝浪潮集团成为微软在中国的第四家全球战略合作伙伴!(暂时放首页两天)
    一种系统间集成的同步事务异常处理方法和装置
    一种实现多线并行拣选的方法
  • 原文地址:https://www.cnblogs.com/hustsay23/p/8392323.html
Copyright © 2011-2022 走看看