• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号
您的位置:首页 > 程序设计 >ASP.NET > ASP.NET MVC实现仪表程序

ASP.NET MVC实现仪表程序

作者:JK_Rush 字体:[增加 减小] 来源:互联网 时间:2017-05-11

JK_Rush通过本文主要向大家介绍了asp net mvc,asp net mvc 4,asp net mvc 5,精通asp.net mvc 5,精通asp.net mvc 4等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com

在大多数情况下,我们的Web程序不仅仅需要给用户提供具体数据,在一些情况下,我们还需要给高级的用户或管理者提供数据汇总和分析图表之类的功能。

如果我们不想显示一大堆烦心的数据,希望通过饼图或条形图来直观地显示数据,这是我们可以考虑使用图表控件显示。

在接下来的文章中,我们将向大家介绍数据仪表板程序的实现。

之前有一篇文章关于StackOverflow上的编程趋势,它通过条形和区域图,向我们展示了Stackoverflow上的热门的问题标签。

图1 Stackoverflow的热门标签

通过上图,我们可以直观地了解Stackoverflow上的热门标签的变化趋势,现在,我们通过仪表程序实现同样的功能。

在仪表程序界面中,我们会通过饼状图、区域图和条形图显示数据,这里我们使用Google Charts控件来显示饼状图、区域图和条形图数据图。

Google Charts通过Javascript实现动态图片的绘制,它的使用非常简便,我们只需给相应的绘图函数传递相应的数据,就可以生成相应的数据图表了。

UI设计

图2 Dashboard界面

现在,我们要在主界面(Dashboard)中,显示数据的饼状图、区域图和条形图,那么我们使用Google Charts控件动态地把三种图形加载到Index.cshtml页面中,下面是Index.cshtml页面代码:

<!-- Dashboard UI START -->
<body>
 <div>
  @{ Html.RenderAction("Dashboard_Pie", "DashBoard"); }
 </div>
 <div>
  @{ Html.RenderAction("Dashboard_AreaChart", "DashBoard"); }
 </div>
 <div>
  @{ Html.RenderAction("Dashboard_ColumnChart", "DashBoard"); }
 </div>
</body>
<!-- Dashboard UI END -->
</div>

上面,我们定义了三个div元素,Index.cshtml页面动态地加载Dashboard_Pie、Dashboard_AreaChart以及Dashboard_ColumnChart的内容。

接下来,我们要定义Dashboard_Pie(饼状图)、Dashboard_AreaChart(区域图)和Dashboard_ColumnChart(条形图)页面,在定义数据图界面之前,首先让我们介绍Google Charts的使用。

Javascript
前面我们提到Google Charts的使用十分方便,首先我们需要引用jsapi库,在页面代码中添加如下代码:

<!-- Adds Google js api reference.-->
<script type="text/javascript" src="https://www.google.com/jsapi"></script>
</div>

Google的JSAPI,不仅可以加载Google自身提供的AJAX API(如:Google Map API、Google Search API和Google Earth API),它还可以加载各种常用的JS库(如:jQuery、jQuery UI、Prototype、MooTools和Dojo等)。

现在,我们在页面中添加如下Javascript代码,引用Google的visualization库:

<script type="text/javascript">
 google.load("visualization", "1", { packages: ["corechart"] });
 google.setOnLoadCallback(drawPieChart);

</script>

</div>

上面,我们使用google的load()方法加载了visualization库,并且定义了加载成功后的回调函数为drawPieChart()。

也许有人会问:“为什么不直接用Google CDN中提供Javascript库呢?”有两个原因,首先我们在Google CDN中没有找到和visualization库相关的引用地址(如有请告诉一下),其次,google的load()方法会加载一系列相关的资源(如:Javascript和CSS),这样我们就无需一个个引用了。

前面,我们定义了回调函数drawPieChart(),但还没有实现该方法,接下来,我们需要实现回调函数drawPieChart(),它负责获绘制数据图,具体实现如下:

/**
* Draws the pie chart.
**/
function drawPieChart() {

 // Gets data from GetLanguageRank().
 $.ajax({
  type: 'GET',
  dataType: 'json',
  url: '<%= Url.Content("") %>',
  data: {},
  success: function(data) {
   var dt = new google.visualization.DataTable();

   dt.addColumn('string', 'Language');
   dt.addColumn('number', 'Question');

   // Adds data.
   for (var i = 0; i < data.length; i++) {
    dt.addRow([data[i].Name, data[i].Question]);
   }

   var options = {
    title: "Top 25 programming language"
   };

   // Draws pie implemention.
   var chart = new google.visualization.PieChart(document.getElementById('pieChart'));
   chart.draw(dt, options);
  },
  error: function(xhr, textStatus, e) {
   console.log('Status: ' + textStatus + ' Error: ' + e.toString());
  },
  complete: function() {
  }

 });
}

</div>

上面,我们实现了回调函数drawPieChart(),它通过调用$.ajax()方法从后端中获取数据,如果数据获取成功,就把数据传递给draw()方法绘制数据图表。

接着,我们实现Dashboard_Pie数据图界面,具体代码如下:

<!-- Pie chart page -->
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 <title></title>
</head>
<body>
 <form id="form2" runat="server">
  <div id="pieChart">
  </div>
 </form>
</body>
</html>
</div>

上面,我们在form元素中添加了一个div元素,由于我们在回调函数drawPieChart()中,指定了饼状图的加载位置,所以我们需要在页面中添加饼状图的div元素。

前面,我们提到回调函数drawPieChart(),通过$.ajax()方法从后端中获取数据,现在,我们需要提供API方法,让客户端通过调用API获取相应的数据。

这里,我们使用Stackoverflow Jan/01/2010到July/01/2013的热门标签数据。

由于数据是CSV格式的,所以我们可以使用Excel查看数据。

图3 热门标签数据

通过上图中的数据,我们定义Language类,它包含四个字段分别是Id、Name、Question和CreateOn,具体定义如下:

图4 Language类

/// <summary>
/// The language model.
/// </summary>
public class QuestionTag
{
 public int Id { get; set; }
 public string Name { get; set; }
 public int Question { get; set; }
 public DateTime CreateOn { get; set; }
}
</div>

上面,我们定义了QuestionTag类,接下来,我们需要定义控制器类,它负责返回后端数据,所以我们在Controllers文件中创建DashboardController类,并且我们添加GetLanguageRank()方法,具体实现如下:

图5 DashboardController类

/// <summary>
/// Gets language rank data.
/// </summary>
/// <returns>JSON arrary.</returns>
public JsonResult GetLanguageRank()
{
 // Gets data from database.
}
</div>

导入数据
上面,我们定义了DashboardController类,它包含GetLanguageRank()方法,接下来我们把CSV数据保存到数据库中。首先,我们在数据库中创建数据表,具体SQL代码如下:

-- =============================================
-- Description: Table for st



 
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 详解ASP.NET MVC 常用扩展点:过滤器、模型绑定
  • ASP.NET MVC从视图传参到控制器的几种形式
  • ASP.NET MVC 4 中的JSON数据交互的方法
  • ASP.NET MVC制作404跳转实例(非302和200)
  • 详解ASP.NET MVC 利用Razor引擎生成静态页
  • 详解ASP.NET MVC 解析模板生成静态页(RazorEngine)
  • ASP.NET MVC4 利用uploadify.js多文件上传
  • ASP.NET mvc4中的过滤器的使用
  • Asp.net MVC下使用Bundle合并、压缩js与css文件详解
  • 详解Asp.Net MVC——控制器与动作(Controller And Action)

相关文章

  • 2017-05-11ASP.Net中利用CSS实现多界面的两种方法
  • 2017-05-11ASP.NET网站实时显示时间的方法
  • 2017-05-11Asp.net 基于Cookie简易的权限判断
  • 2017-05-11asp.net 数据绑定的实例代码
  • 2017-05-11.NET中RDLC循环处理数据的应用分析
  • 2017-05-11解读ASP.NET 5 & MVC6系列教程(9):日志框架
  • 2017-05-11在ASP.NET 2.0中操作数据之六十九:处理Computed Columns列
  • 2017-05-11ASP.NET 广告控件AdRotator的使用方法与实例
  • 2017-05-11asp.net类库中添加WebService引用出现问题解决方法
  • 2017-05-11在asp.net网页中显示数学符号的代码

文章分类

  • JavaScript
  • ASP.NET
  • PHP
  • 正则表达式
  • AJAX
  • JSP
  • ASP
  • Flex
  • XML
  • 编程技巧
  • Android
  • swift
  • C#教程
  • vb
  • vb.net
  • C语言
  • Java
  • Delphi
  • 易语言
  • vc/mfc
  • 嵌入式开发
  • 游戏开发
  • ios
  • 编程问答
  • 汇编语言
  • 微信小程序
  • 数据结构
  • OpenGL
  • 架构设计
  • qt
  • 微信公众号

最近更新的内容

    • Visual Studio 2017安装失败的解决方法
    • asp.net自定义控件代码学习笔记
    • VS2015 IIS Express无法启动的解决方法
    • 程序中常用的种代码
    • 阿里云上从ASP.NET线程角度对“黑色30秒”问题的全新分析
    • 正则表达式速查表(ASP.NET)
    • 解析如何利用一个ASP.NET Core应用来发布静态文件
    • asp.net实现在线音乐播放器示例
    • dhtmlxGrid 添加行号详细步骤
    • asp.net实现的MVC跨数据库多表联合动态条件查询功能示例

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有