MSChart图表控件的一些使用

简介:

最近使用MSChart做了几张图表,微软提供的例子中对这个图表控件的使用已经说的比较详细了,我这里记录一些需要注意的。

1. Chart图表的元素

要使用该图表首先要了解该图表的元素组成,就是下面这张图了,
clip_image002

图表主要包含:

Annotations (图形注解集合)
ChartAreas(图表区域集合)
Legends(图例集合)
Series图表序列集合即图表数据对象集合)
Title(图标的标题集合)

其他大家可以参考Samples中的Char Features一节。

2. 如何在ASP.NET MVC中使用Chart控件

2.1.需要在"<system.web><pages><controls>"中添加如下:

<add tagPrefix="asp" namespace="System.Web.UI.DataVisualization.Charting" assembly="System.Web.DataVisualization, 
Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
"/>

2.2.在"<httpHandlers>"中添加如下部分:

<add path="ChartImg.axd" verb="GET,HEAD" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, 
System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35
" validate="false"/>

2.3. 有了上面的配置就可以测试了:

2.3.1.View中添加:

<asp:chart id="Chart1" runat="server" Height="296px" Width="412px" Palette="BrightPastel" imagetype="Png" 
BorderDashStyle="Solid" BackSecondaryColor="White" BackGradientStyle="TopBottom" BorderWidth="2" backcolor="#D3DFF0" 
BorderColor="26, 59, 105"> <Titles> <asp:Title Text="With datasource in code behind" /> </Titles> <legends> <asp:Legend IsTextAutoFit="False" Name="Default" BackColor="Transparent" Font="Trebuchet MS, 8.25pt, style=Bold">
</
asp:Legend></legends> <borderskin skinstyle="Emboss"></borderskin> <series> <asp:Series Name="Column" BorderColor="180, 26, 59, 105"> </asp:Series> </series> <chartareas> <asp:ChartArea Name="ChartArea1" BorderColor="64, 64, 64, 64" BorderDashStyle="Solid" BackSecondaryColor="White"
BackColor="64, 165, 191, 228" ShadowColor="Transparent" BackGradientStyle="TopBottom"> <area3dstyle Rotation="10" perspective="10" Inclination="15" IsRightAngleAxes="False" wallwidth="0"
IsClustered="False">
</
area3dstyle> <axisy linecolor="64, 64, 64, 64"> <labelstyle font="Trebuchet MS, 8.25pt, style=Bold" /> <majorgrid linecolor="64, 64, 64, 64" /> </axisy> <axisx linecolor="64, 64, 64, 64"> <labelstyle font="Trebuchet MS, 8.25pt, style=Bold" /> <majorgrid linecolor="64, 64, 64, 64" /> </axisx> </asp:ChartArea> </chartareas> </asp:chart>

2.3.2.index.aspx.cs中添加

protected void Page_Load(object sender, System.EventArgs e)
{
    foreach (int value in (List<int>)this.ViewData["Chart"])
    {
    this.Chart1.Series["Column"].Points.Add(value);
    }
}

2.3.3.Controller中:

public ActionResult Index()
{
    ViewData["Title"] = "Home Page";
    ViewData["Message"] = "Welcome to ASP.NET MVC!";
    List<int> chartList = new List<int>();
    chartList.Add(1);
    chartList.Add(2);
    chartList.Add(6);
    chartList.Add(5);
    chartList.Add(4);
    ViewData["Chart"] = chartList;
    return View();
}

2.3.4.添加System.Web.ui.DataVisualization引用

3. Tooltip的使用

ToolTip用于在各个关键点,如:标签、图形关键点、标题等当鼠标移动上去的时候,提示用户一些相关的详细或说明信息。我们可以通过如下代码来设置:

Chart1.Series["Series1"].ToolTip = "#VALY";
这里的主要目的是说下,系统已经提供了很多Keyword供我们使用,如下图:

clip_image002[6]

4. "Error executing child request for ChartImg.axd"的处理

<add name="ChartImageHandler" preCondition="integratedMode" verb="POST,GET,HEAD" path="ChartImg.axd"

<add path="ChartImg.axd"verb="POST,GET,HEAD"type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler,

这两个地方都加上POST就好了

5.图表的呈现

Chartk控件的ImageStorageMode属性是决定如片的存储方式的。

5.1.当Chart.ImageStorageMode=UseHttpHandler时

使用的是web.config中的配置。即指定由HTTP处理程序来存储图形文件,web.config的配置如下:

<add key="ChartImageHandler" value="storage=file;timeout=20;dir=c:\TempImageFiles\;deleteAfterServicing=false; 
webDevServerUseConfigSettings=false
" />

5.1.1.其中c:\TempImageFiles\就是HTTP处理程序来存储图形文件的目录。

5.1.2.deleteAfterServicing,在图片被浏览器成功下功下载后,确定服务器上图片是否删除,默认值为false。如果不指定deleteAfterServicing,图片是不
会被存储为文件的,应当只是暂存在内存中。

5.1.3.webDevServerUseConfigSettings,当在VS开发服务器中,即运行在完全信任级别(full trust level)环境时,决定生成的图片是否被保存在内存中。

5.1.4storage存储3种方式:storage=file,storage=session,storage=memory.

5.2. 当Chart.ImageStorageMode= UseImageLocation时

图表会存储在我们指定的文件夹中,我们也可以指定图片生成的命名规则。

5.2.1.其中Chart.ImageType表示生成图形文件的格式,可以是BMG、JPEG、PNG、EMF。

5.2.2. Chart.RenderType

此属性决定MSChart生成的图形以何种方式送到客户端,有三种:

  • ImageTag,图形在服务端保存为临时文件,并将临时文件的URL作为HTML中<IMG>标签的SRC属性值。而此临时文件的URL规则及临时文件如何生成可由ImageLocation属性确定。
  • BinaryStreaming,不在服务端生成图形文件,<IMG>标签的SRC属性值将指向另一个负责生成图形的.aspx页面。
  • ImageMap,不显示实际的图形,仅创建图片热区(image map)。

默认值是ImageTag,就是会在服务端生成临时文件。

5.2.3.只要在服务端生成图形文件,无论存储在哪个目录下,ASP.NET帐户都需要拥有该目录的写入权限。

下面是我的一张图表:

mschart


本文转自生鱼片博客园博客,原文链接:http://www.cnblogs.com/carysun/archive/2009/03/15/MSChart.html,如需转载请自行联系原作者

相关实践学习
基于Hologres轻量实时的高性能OLAP分析
本教程基于GitHub Archive公开数据集,通过DataWorks将GitHub中的项⽬、行为等20多种事件类型数据实时采集至Hologres进行分析,同时使用DataV内置模板,快速搭建实时可视化数据大屏,从开发者、项⽬、编程语⾔等多个维度了解GitHub实时数据变化情况。
阿里云实时数仓实战 - 用户行为数仓搭建
课程简介 1)学习搭建一个数据仓库的过程,理解数据在整个数仓架构的从采集、存储、计算、输出、展示的整个业务流程。 2)整个数仓体系完全搭建在阿里云架构上,理解并学会运用各个服务组件,了解各个组件之间如何配合联动。 3&nbsp;)前置知识要求:熟练掌握 SQL 语法熟悉 Linux 命令,对 Hadoop 大数据体系有一定的了解 &nbsp; 课程大纲 第一章&nbsp;了解数据仓库概念 初步了解数据仓库是干什么的 第二章&nbsp;按照企业开发的标准去搭建一个数据仓库 数据仓库的需求是什么 架构 怎么选型怎么购买服务器 第三章&nbsp;数据生成模块 用户形成数据的一个准备 按照企业的标准,准备了十一张用户行为表 方便使用 第四章&nbsp;采集模块的搭建 购买阿里云服务器 安装 JDK 安装 Flume 第五章&nbsp;用户行为数据仓库 严格按照企业的标准开发 第六章&nbsp;搭建业务数仓理论基础和对表的分类同步 第七章&nbsp;业务数仓的搭建&nbsp; 业务行为数仓效果图&nbsp;&nbsp;
相关文章
|
JavaScript API 开发者
vue3的生命周期
Vue3 保留了大部分 Vue2 的生命周期钩子,`同时引入了 Composition API`,为开发者提供了更灵活的逻辑复用和组织方式。以下是 Vue3 中组件生命周期的详细介绍
|
C# 容器
Winform控件优化之TabControl控件的美化和功能扩展
在基本的TabControl控件使用和功能之上,可以尝试对其进行美化和功能扩展,比如动态删除或添加tab、绘制图标按钮及鼠标hover时的背景变化、Tab从右向左布局的优化处理等。最重要...
3857 0
Winform控件优化之TabControl控件的美化和功能扩展
|
传感器 安全 编译器
【C语言】enum 关键字详解
`enum`关键字在C语言中提供了一种简洁而高效的方法来定义一组相关的常量。通过使用枚举,可以提高代码的可读性、可维护性,并减少错误的发生。在实际应用中,枚举广泛用于表示状态、命令、错误码等,为开发者提供了更清晰的代码结构和更方便的调试手段。通过合理使用枚举,可以编写出更高质量、更易维护的C语言程序。
807 2
|
消息中间件 Linux
Linux IPC(进程间通信)管理:深入解析ipcs和ipcrm命令的用法与示例
在Linux操作系统中,进程间通信(IPC)是实现进程之间数据传递和同步的关键机制。Linux提供了多种IPC方式,如消息队列、信号量和共享内存等。为了优化系统性能与稳定性,及时管理和清理IPC资源非常重要。本文将深入介绍ipcs和ipcrm命令的使用方法,并给出丰富的示例,以帮助读者更好地理解IPC资源管理的实践技巧。
1591 1
|
编解码 前端开发 API
使用 DPR 进行响应式设计
【10月更文挑战第24天】我们可以利用 DPR 来实现更精细、更自适应的响应式设计,为用户提供更好的视觉体验,无论他们使用的是什么设备。
|
Ubuntu Linux 数据安全/隐私保护
Ubuntu搭建vscode服务器
Ubuntu搭建vscode服务器
|
API C# Shell
WPF与Windows Shell完美融合:深入解析文件系统操作技巧——从基本文件管理到高级Shell功能调用,全面掌握WPF中的文件处理艺术
【8月更文挑战第31天】Windows Presentation Foundation (WPF) 是 .NET Framework 的关键组件,用于构建 Windows 桌面应用程序。WPF 提供了丰富的功能来创建美观且功能强大的用户界面。本文通过问题解答的形式,探讨了如何在 WPF 应用中集成 Windows Shell 功能,并通过具体示例代码展示了文件系统的操作方法,包括列出目录下的所有文件、创建和删除文件、移动和复制文件以及打开文件夹或文件等。
420 0
|
JSON 前端开发 JavaScript
layui-数据表格的实现
`layui`是一个前端UI框架,本文档介绍了如何使用layui创建数据表格。首先展示了三张截图来预览效果,接着讲解了下载layui资源包并导入到项目中的步骤。然后,在新建的web项目中引入layui的CSS和JS文件。文档提供了模拟的JSON数据来展示表格内容。接下来,详细说明了数据表格的实现,包括注意事项和代码实现,强调了`table`标签的`id`与`script`中`elem`的匹配。此外,文档还涵盖了监听头部工具栏和工具条事件的方法,并展示了弹出层的实现,用于添加和编辑表格数据。最后,给出了完整的HTML源码示例。
550 0
|
Linux
linux 使用 overlay的命令
linux 使用 overlay的命令
1415 0
|
存储 域名解析 安全
基于【国基北盛】云基础架构平台软件搭建openstack私有云平台(先电V2.4版本)(下)
基于【国基北盛】云基础架构平台软件搭建openstack私有云平台(先电V2.4版本)
1223 0
基于【国基北盛】云基础架构平台软件搭建openstack私有云平台(先电V2.4版本)(下)