当前位置: 首页 > news >正文

angularjs ng-grid 表格使用

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

  • Html
    <div class="tab">
        <div class="grid-style" ng-grid="gridOptions" style="width: 1200.2px;"></div>
    </div>
  • app.js

    // 前台分页控件
    app.service("frontPaging", function () {
    return {
        newInstance : function ($scope) {
            $scope.totalServerItems = 0;
            $scope.pagingOptions = {
                pageSizes: [1,5,20, 50, 100],
                pageSize: 20,
                currentPage: 1
            };
            $scope.setRealData = function (realData) {
                $scope.realData= realData;
            };
            $scope.setPagingData = function(data, currentPage, pageSize) {
                var realData = data.slice((currentPage - 1) * pageSize, currentPage * pageSize);
                $scope.pageData = realData;
                $scope.totalServerItems = data.length;
                if (!$scope.$$phase) {
                    $scope.$apply();
                }
            };
            $scope.getPagedDataAsync = function(currentPage, pageSize) {
                var data = $scope.realData;
                setTimeout(function() {
                    $scope.setPagingData(data, currentPage, pageSize);
                }, 100);
            };
            $scope.$watch('pagingOptions', function(newVal, oldVal) {
                if (newVal !== oldVal &&  newVal.pageSize !== oldVal.pageSize) {
                    $scope.getPagedDataAsync($scope.pagingOptions.currentPage = 1, $scope.pagingOptions.pageSize);
                }
                else if (newVal !== oldVal &&  newVal.currentPage !== oldVal.currentPage) {
                    $scope.getPagedDataAsync($scope.pagingOptions.currentPage, $scope.pagingOptions.pageSize);
                }
            }, true);
            return $scope;
        }
    }
});


  • js

    /**
     * 初始化前台分页控件
     * 注意: $scope.setRealData(data.data.list); (后台返回的list)
     * 注意: gridOptions { data: "pageData", (分页数据)
     */
    frontPaging.newInstance($scope);
    // 数据源
    $scope.data = [
        {"ziydwz_id":"34324","wuzmc":"钢管1","guig":"1mm","hansdj":299.00,"buhsdj":300.00, "shul": 1, "hansdjSum":0, "buhsdjSum":0},
        {"ziydwz_id":"43424","wuzmc":"钢管2","guig":"1mm","hansdj":299.00,"buhsdj":301.00, "shul": 2, "hansdjSum":0, "buhsdjSum":0},
        {"ziydwz_id":"5435","wuzmc":"钢管3","guig":"1mm","hansdj":299.00,"buhsdj":302.00, "shul": 1, "hansdjSum":0, "buhsdjSum":0},
        {"ziydwz_id":"543","wuzmc":"钢管4","guig":"1mm","hansdj":299.00,"buhsdj":303.00, "shul": 4, "hansdjSum":0, "buhsdjSum":0},
        {"ziydwz_id":"423","wuzmc":"钢管5","guig":"1mm","hansdj":299.00,"buhsdj":304.00, "shul": 7, "hansdjSum":0, "buhsdjSum":0},
        {"ziydwz_id":"654","wuzmc":"钢管6","guig":"1mm","hansdj":299.00,"buhsdj":305.00, "shul": 5, "hansdjSum":0, "buhsdjSum":0},
        {"ziydwz_id":"423","wuzmc":"钢管7","guig":"1mm","hansdj":299.00,"buhsdj":306.00, "shul": 8, "hansdjSum":0, "buhsdjSum":0},
        {"ziydwz_id":"654","wuzmc":"钢管8","guig":"1mm","hansdj":299.00,"buhsdj":305.00, "shul": 5, "hansdjSum":0, "buhsdjSum":0},
        {"ziydwz_id":"654","wuzmc":"钢管9","guig":"1mm","hansdj":299.00,"buhsdj":305.00, "shul": 5, "hansdjSum":0, "buhsdjSum":0},
        {"ziydwz_id":"654","wuzmc":"钢管10","guig":"1mm","hansdj":299.00,"buhsdj":305.00, "shul": 5, "hansdjSum":0, "buhsdjSum":0},
        {"ziydwz_id":"654","wuzmc":"钢管11","guig":"1mm","hansdj":299.00,"buhsdj":305.00, "shul": 5, "hansdjSum":0, "buhsdjSum":0},
    ];
    $scope.setRealData($scope.data);
    $scope.getPagedDataAsync($scope.pagingOptions.currentPage, $scope.pagingOptions.pageSize);
    
       // 用于接受选中列
    $scope.mySelections = [];
    $scope.gridOptions = angular.extend({}, $rootScope.gridOptions, {
        data: "pageData",
        selectedItems:$scope.mySelections,
        useExternalPagination: true,//是否使用分页按钮
        enableRowHeaderSelection : true, //是否显示选中checkbox框 ,默认为true
        enableFooterTotalSelected: true, // 是否显示选中的总数,默认为true, 如果显示,showGridFooter 必须为true
        enableFullRowSelection : true, //是否点击行任意位置后选中,默认为false,当为true时,checkbox可以显示但是不可选中
        enableRowSelection : true, // 行选择是否可用,默认为true;
        enableCellSelection: true,
        enableSelectAll : true, // 选择所有checkbox是否可用,默认为true;
        enableSelectionBatchEvent : true, //默认true
        selectWithCheckboxOnly: true,
        showSelectionCheckbox: true,
        CheckBoxHeaderColumn:true,
        pagingOptions: $scope.pagingOptions,
        filterOptions: $scope.filterOptions,
        columnDefs: [
            {
                field: "wuzmc",
                displayName: "商品信息",
                width:280,
                sortable:false,
                pinnable: true,
                EnableCheckBoxSelect:true,
                enableCellEdit: false
            }, {
                field: "guig",
                displayName: "规格",
                width: 120,
                sortable: true
            }, {
                field: "hansdj",
                displayName: "单价(含税)",
                width: 150,
                sortable: true,
                enableSorting: true,
                cellTemplate:'<div class="ngCellText" ng-class="col.colIndex()">¥{{row.getProperty(col.field)}}</div>'
            }, {
                field: "buhsdj",
                displayName: "单价(不含税)",
                width: 150,
                sortable: true,
                cellTemplate:'<div class="ngCellText" ng-class="col.colIndex()">¥{{row.getProperty(col.field)}}</div>'
            },  {
                field: "shul",
                displayName: "数量",
                width: 200,
                sortable: false
            },{
                field: "hansdjSum",
                displayName: "小计(含税)",
                width: 125,
                sortable: true,
                cellTemplate: '<div class="ngCellText" ng-class="col.colIndex()">¥{{row.getProperty(col.field)}}</div>'
            },{
                field: "buhsdjSum",
                displayName: "小计(不含税)",
                width: 125,
                sortable: true,
                cellTemplate: '<div class="ngCellText" ng-class="col.colIndex()">¥{{row.getProperty(col.field)}}</div>'
            }],
        totalServerItems: 'totalServerItems',
        enablePaging: true,
        showFooter: true
    });

    // 监控
    $scope.$watch("mySelections", function() {
        //console.log($scope.mySelections);
        if($scope.mySelections.length == 0){
            $scope.gouwc.pic = 0;
        }
        $scope.choicePicSumRadio();
    }, true);

转载于:https://my.oschina.net/u/2489726/blog/837886

相关文章:

  • shllter自动和手动实例
  • easyui datagrid 列的内容超出所定义的列宽时,自动换行
  • 性能优化之快速响应的用户界面
  • 第二十一课、Qt中的标准对话框(下)------------------狄泰软件学院
  • 六种微服务架构的设计模式
  • 记录和保存日常文件的好处_无需整理
  • webpack 与 热编译webpack-dev-server
  • HDU1878 欧拉回路
  • 【整理】微信小程序开发须知
  • Unity Remote 5 使用
  • puppet自动化技术基础分析及实例部署详解
  • DSOframer的简单介绍和资源整理
  • swift开发多线程篇 - 多线程基础
  • 杭电2003——求绝对值
  • 《ArcGIS Runtime SDK for Android开发笔记》——(5)、基于Android Studio构建ArcGIS Android开发环境(离线部署)...
  • [译] React v16.8: 含有Hooks的版本
  • [译]CSS 居中(Center)方法大合集
  • 【跃迁之路】【519天】程序员高效学习方法论探索系列(实验阶段276-2018.07.09)...
  • 0基础学习移动端适配
  • 2017-09-12 前端日报
  • 3.7、@ResponseBody 和 @RestController
  • 8年软件测试工程师感悟——写给还在迷茫中的朋友
  • angular学习第一篇-----环境搭建
  • JavaScript的使用你知道几种?(上)
  • mac修复ab及siege安装
  • Python打包系统简单入门
  • swift基础之_对象 实例方法 对象方法。
  • 从0到1:PostCSS 插件开发最佳实践
  • 从零开始的webpack生活-0x009:FilesLoader装载文件
  • 使用 Xcode 的 Target 区分开发和生产环境
  • 一道闭包题引发的思考
  • 移动互联网+智能运营体系搭建=你家有金矿啊!
  • 异常机制详解
  • 终端用户监控:真实用户监控还是模拟监控?
  • Semaphore
  • Unity3D - 异步加载游戏场景与异步加载游戏资源进度条 ...
  • 阿里云重庆大学大数据训练营落地分享
  • ​LeetCode解法汇总518. 零钱兑换 II
  • (06)Hive——正则表达式
  • (C++)栈的链式存储结构(出栈、入栈、判空、遍历、销毁)(数据结构与算法)
  • (C++17) optional的使用
  • (附源码)ssm航空客运订票系统 毕业设计 141612
  • (接口自动化)Python3操作MySQL数据库
  • (论文阅读32/100)Flowing convnets for human pose estimation in videos
  • (亲测有效)解决windows11无法使用1500000波特率的问题
  • (四)Linux Shell编程——输入输出重定向
  • (循环依赖问题)学习spring的第九天
  • (转) RFS+AutoItLibrary测试web对话框
  • (转)es进行聚合操作时提示Fielddata is disabled on text fields by default
  • (转载)深入super,看Python如何解决钻石继承难题
  • .bat批处理(四):路径相关%cd%和%~dp0的区别
  • .NET Standard、.NET Framework 、.NET Core三者的关系与区别?
  • .NET 中选择合适的文件打开模式(CreateNew, Create, Open, OpenOrCreate, Truncate, Append)
  • .NET开源快速、强大、免费的电子表格组件
  • @拔赤:Web前端开发十日谈