• 物联网平台设计心得:列表数据可视化


    列表是数据的展现方式之一,可以更加直观的进行数据查验。在本篇文章中,我们将通过基于bootstrap封装的angular grid来展示其具体的使用方法和效果。

    准备工作

    首先,我们需要下载angular-ui-grid组件,通过这个名称,我们可以在github中找到其具体的项目地址,我这里就不再贴了,大家可以自行寻找。

    然后,项目下载下来之后我们需要包括到工程中,并在页面中进行引入:

        <!--UIGrid Part-->
        <script src="~/Content/front/angular-ui-grid/ui-grid.min.js"></script>

    然后是Html模板的设置:

      <div class="datacontainer">
            <div class="row">
                <div class="col-md-12">
                    <div class="panel panel-default">
                        <div class="panel-heading">{{selectedMachine.machine_name}}列表数据</div>
                        <div class="panel-body" style="height:auto;overflow:auto">
                            <div ui-grid="gridOptions" ui-grid-selection ui-grid-pagination></div>
                        </div>
                    </div>
                </div>
            </div>
        </div>

    绑定列表数据

    好了,设置完毕,我们去controller中进行相关的绑定操作即可:

    app.controller('collectorController', ['$scope', '$cookies', '$timeout','$compile', 'baseService', 'collectorService', 'uiGridConstants', function ($scope, $cookies,$timeout,$compile, baseService, collectorService, uiGridConstants) {
        var self = this;
    
        //绑定列表
        $scope.gridOptions = {
            enableRowSelection: true,
            enableSelectAll: false,
            selectionRowHeaderWidth: 35,
            rowHeight: 35,
            showGridFooter: false,
            multiSelect: true,
            enablePaginationControls: true,
            paginationPageSizes: [9, 15, 20],
            paginationPageSize: 9
        };
    
        $scope.gridOptions.columnDefs = [
    			{ name: 'Param_name', displayName: '参数名称' },
    			{ name: 'Param_unit', displayName: '参数单位' },
                { name: 'Param_data', displayName: '参数值' },
                { name: 'Param_time', displayName: '采集时间' }
        ];
    
        $scope.gridOptions.onRegisterApi = function (gridApi) {
            $scope.gridApi = gridApi;
        };
    
        $scope.ClickToGetParamDataList = function (paramId) {
          
            timeCheck($scope.starttime,$scope.endtime);
    
            var starttimeFmt = timeFmt($scope.starttime);
            var endtimeFmt = timeFmt($scope.endtime);
    
            var machineId = $scope.selectedMachine.machine_id;
            collectorService.GetHistoryDataListByParamId(machineId, paramId, starttimeFmt, endtimeFmt).then(function (data) {
                var flag = data.data.success;
                if (flag) {
                    $scope.gridOptions.data = data.data.list;
                }
            });
        }
       
    }]);
    
    

    由于我们使用了分页,所以我们必须得引入其分页模块,在app.js入口处,我们可以进行注入操作,同时如果想选择列表项,我们同时可以引入其选择项模块:

    var app = angular.module('dsBootstrap', [
                                            'ui.grid',
                                            'ui.grid.selection',
                                            'ui.grid.pagination',
                                            'ngCookies',
                                            'ui.bootstrap.datetimepicker'
                                            ]);

    最后我们看看效果:

    QQ截图20160221205017

  • 相关阅读:
    浏览器的跨域请求 与 CORS(跨域资源共享)
    HTML 占位符
    C# 中的 base和this
    推荐一个pdf引擎
    整理wifi相关的知识点
    交叉编译(ISC)DHCP:dhcp-4.3.0b1
    (转载)子网掩码,网关的概念
    海思-VB被占用导致vb无法去初始化
    c++创建文件时重命名同名文件
    iw创建虚拟网卡wlan1,ap_sta共存
  • 原文地址:https://www.cnblogs.com/scy251147/p/5205541.html
Copyright © 2020-2023  润新知