• EasyUI之DataGird动态组合列


          Dojo、ExtJS、Jquery(EasyUI、jQgrid、ligerui、DWZ)、还有asp.net中的服务器控件、当然也少不了HTML 标签之table标签了。其中dojo、ExtJS、Jquery这三者应该算是并列关系吧,都是基于JavaScript的框架、只不过dojo、ExtJS的学习成本比jquery高一些罢了,学习曲线陡一些,中文文档少一些,不过功能之强大还属dojo 、extjs,dojo偏向于地图。使用各式各样的datagrid有几年了,一直都没有做过总结,姑且算是忙于工作吧。最为惭愧的是,每一种dataGrid都没有用的特别精通。在实际使用中遇到问题,除了谷歌,度娘意外就只有查看晦涩难懂的英文文档了。

       注:dojo 有人直接念拼音、有人叫豆角(谐音)。

      今天在这里简单介绍EasyUI中的DataGrid中的动态组合列,也是在项目中遇到的一个问题,就是同一个报表,不同的用户登录后只能查看自己权限范围内的报表字段。有这么两种思路:

    1. 隐藏列

    鉴于现在的牛人非常多,随便一查看源码就能知晓其大意,便放弃了。

      2.  动态组合显示的列  这里用了easyui 的datagrid

    先来看一下

    <table id="dg"></table>
    $('#dg').datagrid({
                    title: '',
                    loadMsg: "数据加载中,请稍候……",
                    height: $(window).height() - 31,
                     $(window).width(),
                    singleSelect: true,
                    selectOnCheck: true,
                    url: 'col.page',
                    sortName: 'sn',
                    sortOrder: 'desc',
                    remoteSort: false,
                    idField: 'id',
                    columns: [[
                        { field: 'id', title: '主键编码', hidden: true },
                        { field: 'name', title: '字段名',  100 },
                        { field: 'alias', title: '字段别名',  100 },
                        { field: 'sn', title: '顺序',  100, sortable: true },
                        { field: 'insdt', title: '创建时间',  220 },
                        { field: 'opuser', title: '操作用户', hidden: true,  100 },
                    ]],
                    onDblClickRow: function (rowIndex, rowData) {
                        upd();
                    }
     });

    $('#dg').datagrid()中所包含的部分为一个Object

    Columns中所包含的部分为一个嵌套数组Object

    说到这里应该都明白其中大意了吧,看实现代码

      function easyUIDataGrid(medid) {
                var $datagrid = {};
                var columns = new Array();
    
                $datagrid.title = "";
                $datagrid.height = $(window).height() - 31;
                $datagrid.width = $(window).width();
                $datagrid.sortName = "dt";
                $datagrid.sortOrder = "desc";
                $datagrid.idField = "id";
    
                var param = { "medid": medid };
                $.ajax({
                    url: 'getCol.page',
                    type: 'post',
                    data: "medid=" + medid,
                    dataType: "json",
                    async: false,
                    success: function (returnValue) {
                //异步获取要动态生成的列 别名,宽度也可以 var arr = returnValue; $.each(arr, function (i, item) { columns.push({ "field": item.colname, "title": item.colalias, "width": 100, "sortable": true }); }); $datagrid.columns = new Array(columns); $('#dg').datagrid($datagrid); console.log(JSON.stringify($datagrid)); } }); }

    转载请注明出处  

    如有疑问,欢迎留言。

    作者网站https://xyzla.com

  • 相关阅读:
    第7章例7-12
    第7章例7-11
    第7章例7-9
    第7章例7-8
    第7章例7-7
    第7章例7-6
    第7章例7-5
    第7章例7-4
    第7章例7-3
    第7章例7-2
  • 原文地址:https://www.cnblogs.com/xyzla/p/4256306.html
Copyright © 2020-2023  润新知