• ui-grid angularjs


    <pre name="code" class="html"><!--ui-grid css-->  
    <link rel="stylesheet" type="text/css" href="../lib/angular-ui/ui-grid/ui-grid.min.css">  
    <div class="gridStyle" ui-grid="gridOptions" ui-grid-selection ui-grid-resize-columns ui-grid-auto-resize ui-grid-exporter ui-grid-edit ui-gird-pagination ui-grid-cellnav>  
    </div>  
    <!--ui-grid js-->  
    <script src="../lib/angular-ui/ui-grid/ui-grid.min.js"></script>  
    <!--ui-grid excel export-->  
    <script src="../lib/angular-ui/ui-grid/csv.js"></script>  
    <!--ui-grid pdf export-->  
    <script src="../lib/angular-ui/ui-grid/pdfmake.min.js"></script>  
    <script src="../lib/angular-ui/ui-grid/vfs_fonts.js"></script>  
    <!--ui-grid-selection 选择行指令-->  
    <!--ui-grid-resize-columns 表格宽可拉伸指令-->  
    <!--ui-grid-auto-resize 自动使用div的高度和宽度指令-->  
    <!--ui-grid-exporter 导出指令-->  
    <!--ui-grid-edit 编辑指令-->  
    <!--ui-gird-pagination 分页指令-->  
    <!--ui-gird-pagination 分页指令-->  
    <!--ui-grid-cellnav 单元格指令-->  
    <!--gridStyle 自定义设置样式-->  
    

      

    JS

    angular.module('app', ['ui.grid','ui.grid.selection','ui.grid.resizeColumns','ui.grid.autoResize','ui.grid.edit','ui.grid.exporter','ui.grid.pagination','ui.grid.cellNav'])  
    .controller('RootCtrl', function($scope,i18nService) {//前四个基本上是必用到的 后面的可以根据自身情况去加  
                // 国际化;  
                i18nService.setCurrentLang('zh-cn');  
                $scope.gridOptions = {  
                    data : 'myData',  
                    //基础属性  
                    enableSorting : true,//是否支持排序(列)  
                    useExternalSorting : false,//是否支持自定义的排序规则  
                    enableRowHeaderSelection : false,  
                    enableGridMenu : false,//是否显示表格 菜单  
                    showGridFooter: true,//时候显示表格的footer  
                    enableHorizontalScrollbar : 1,//表格的水平滚动条  
                    enableVerticalScrollbar : 1,//表格的垂直滚动条 (两个都是 1-显示,0-不显示)  
                    selectionRowHeaderWidth : 30,  
                    enableCellEditOnFocus:false,//default为false,true的时候单击即可打开编辑(cellEdit为true的时候,需要引入'ui.grid.cellNav')  
                    //分页属性  
                    enablePagination: true, //是否分页,default为true  
                    enablePaginationControls: true, //使用默认的底部分页  
                    paginationPageSizes: [10, 15, 20], //每页显示个数选项  
                    paginationCurrentPage:1, //当前的页码  
                    paginationPageSize: 10, //每页显示个数  
                    paginationTemplate:"<div></div>", //自定义底部分页代码  
                    totalItems : 0, // 总数量  
                    useExternalPagination: true,//是否使用分页按钮            
                    //选中  
                    rowTemplate: "<div ng-dblclick="grid.appScope.onDblClick(row)" ng-repeat="(colRenderIndex, col) in colContainer.renderedColumns track by col.colDef.name" class="ui-grid-cell" ng-class="{ 'ui-grid-row-header-cell': col.isRowHeader }" ui-grid-cell></div>",//双击行事件  
                    enableFooterTotalSelected: true, // 是否显示选中的总数,default为true,如果显示,showGridFooter 必须为true  
                    enableFullRowSelection : true, //是否点击行任意位置后选中,default为false,当为true时,checkbox可以显示但是不可选中  
                    enableRowHeaderSelection : true, //是否显示选中checkbox框 ,default为true  
                    enableRowSelection : true, // 行选择是否可用,default为true;  
                    enableSelectAll : true, // 选择所有checkbox是否可用,default为true;   
                    enableSelectionBatchEvent : true, //default为true  
                    modifierKeysToMultiSelect: false ,//default为false,为true时只能按ctrl或shift键进行多选,这个时候multiSelect必须为true;  
                    multiSelect: true ,// 是否可以选择多个,默认为true;  
                    noUnselect: false,//default为false,选中后是否可以取消选中  
                    selectionRowHeaderWidth:30 ,//default为30,设置选择列的宽度  
                    //api   
                    onRegisterApi : function (gridApi) {  
                        $scope.gridApi = gridApi;  
                        $scope.gridApi.edit.on.afterCellEdit($scope,function(rowEntity){  
                            //编辑离开事件  
                        });  
                          
                        $scope.gridApi.selection.on.rowSelectionChanged($scope,function(row,event){  
                           //行选中事件  
                         });  
                    },  
                     
                    //导出(只支持csv,扩展性不太好)  
                    exporterAllDataFn: function(){//导出全部  
                           return getAllData();  
                    },  
                    exporterCsvColumnSeparator: ',',  
                    exporterCsvFilename:'testdown.csv',  
                    exporterFieldCallback : function ( grid, row, col, value ){//导出回调可以过滤条件  
                      
                        return value;  
                    },  
                    exporterHeaderFilterUseName : true,  
                    exporterMenuCsv : true,  
                    exporterMenuLabel : "Export",  
                    exporterMenuPdf : true,  
                    exporterOlderExcelCompatibility : false,//是否兼容低版本excel  
                    exporterPdfCustomFormatter : function ( docDefinition ) {  
                     docDefinition.styles.footerStyle = { bold: true, fontSize: 10 };  
                     return docDefinition;  
                    },  
                    exporterPdfFooter :{   
                                         text: '',   
                                         style: ''   
                                       },  
                    exporterPdfDefaultStyle : {  
                      fontSize: 11,font:'simblack' //font 设置自定义字体  
                    },  
                    exporterPdfFilename:'testdown.pdf',  
                    exporterPdfFooter: function(currentPage, pageCount) {   
                           return currentPage.toString() + ' of ' + pageCount;   
                    },  
                    exporterPdfHeader : function(currentPage, pageCount) {   
                       return currentPage.toString() + ' of ' + pageCount;   
                    },  
                    exporterPdfMaxGridWidth : 720,  
                    exporterPdfOrientation : 'landscape',//  'landscape' 或 'portrait' pdf横向或纵向  
                    exporterPdfPageSize : 'A4',// 'A4' or 'LETTER'   
                    exporterPdfTableHeaderStyle : {  
                     bold: true,  
                     fontSize: 12,  
                     color: 'black'  
                    },  
                    exporterPdfTableLayout : null,  
                    exporterPdfTableStyle: {  
                     margin: [0, 5, 0, 15]  
                    },  
                    exporterSuppressColumns : ['name'],//过滤不需要的列  
                    exporterSuppressMenu: false,  
                    //列属性设置  
                     columnDefs: [{   field: 'name',   
                                     displayName: '名字',   
                                      '100', //宽度设置  
                                     enableColumnMenu: false,// 是否显示列头部菜单按钮  
                                     //enableHiding: false,  
                                     //suppressRemoveSort: true,  
                                     enableCellEdit: false, // 是否可编辑  
                                     cellEditableCondition:function($scope){  
                                        return boolean;//是否编辑控制  
                                     },  
                                     visible:true,是否显示default为true,  
                                     cellTemplate : '<a href="" ng-click="grid.appScope.viewPages(row.entity);">{{row.entity.name==1?"重写":""}}</a>',//重写cell  
                                     cellClass: function(grid, row, col, rowRenderIndex, colRenderIndex) {  
                                      //做一些判断。。。  
                                      return 'red'//自定义样式   
                                    },  
                                     //cell下拉  
                                     editableCellTemplate: 'ui-grid/dropdownEditor',  
                                     editDropdownOptionsArray: [],//[{name:1,nameText:'Yoko'}]  
                                     editDropdownIdLabel: 'name',//id  
                                     editDropdownValueLabel: 'nameText',//显示的名字  
                                       
                                     cellFilter:"nameFilet"//过滤器  
                                 }  
                                   
                                ],  
                };  
              var myData=[{name:''}];  
            });  
    

      自定义指令

    .directive('dblClickRow', ['$compile', '$parse', function($compile, $parse) {  
              return {  
                priority : -190, // run after default uiGridCell directive  
                restrict : 'A',  
                scope : false,  
      
                compile: function($element, attr) {  
      
                    // Get the function at ng-dblclick for ui-grid  
                    var fn = $parse(attr['ngDblclick'], /* interceptorFn */ null, /* expensiveChecks */ true);  
      
                    return function ngEventHandler(scope, element) {  
      
                        element.on('dblclick', function(event) {  
      
                          var callback = function() {  
      
                            if ($scope.gridApi.grid.selection.lastSelectedRow)  
                            {  
                                fn($scope, {$event:event, row: $scope.gridApi.grid.selection.lastSelectedRow.entity });  
                            }  
                          };  
      
                          $scope.$apply(callback);  
      
                        }  
                    )};  
      
                }  
      
                };  
            } ])  
    

      

  • 相关阅读:
    hdu1078 记忆化dfs
    hdu1142 dij+记忆化深搜
    UVA 11374 dijkstra预处理+枚举
    poj1502 单源最短路径
    hdu1814 2-SAT 暴力搜
    macos 10.15.1 pip3安装提示权限不足
    将安装器信息下载到目标卷宗失败
    Mac修改默认python版本
    努力吧,少年
    Implement strStr() 字符串匹配
  • 原文地址:https://www.cnblogs.com/SilenceTom/p/9555360.html
Copyright © 2020-2023  润新知