热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

TeeChartPro.NET使用教程(2022):如何使用ASP.NET应用程序(下)

接下来继续为大家介绍上一篇文章未讲完的部分,如何使用ASP.NET应用程序。免费的脚本化ASP应用程序在WebForm中使用WebChart的替代方法是将TeeC

接下来继续为大家介绍上一篇文章未讲完的部分,如何使用ASP.NET 应用程序。

免费的脚本化 ASP 应用程序

在 WebForm 中使用 WebChart 的替代方法是将 TeeChart 用作标准 asp (aspx) 页面中的脚本化“不可见”控件。

TeeChart 可以通过内部 Chart 类在 ASP 中自由编写脚本,但要利用 TeeChart 事件,我们建议使用 TChart Windows 窗体组件或 WebChart 控件

将图表添加到脚本

假设使用 TChart,您需要采取的初始步骤来设置 TeeChart 项目是:


  • 创建新的 ASP.NET Forms 项目。这将创建一个您将用作客户端页面的 WebForm 页面。
  • 添加新的WebForm 页面。此页面将不可见,并将用于处理图表代码服务器端。
  • 按照此处和 ASPStreams 示例中突出显示的代码步骤作为如何设置项目的指南。

工艺流程

客户端浏览器页面 (SeriesTypes.aspx) 包含一个图像,其 IMG 链接是 aspx 服务器脚本 (ShowSeries.aspx)。客户端页面上的提交按钮使用参数化 serverChart 处理所需的变量调用服务器脚本。该按钮将变量作为参数的一部分发送,以设置客户端页面图表图像的 imageURL,因此返回基于处理参数的动态图表。

使用 TeeChart 编码

要使用 TeeChart 服务器端进行编码,请在脚本页面上添加 using 到 TeeChart:

using Steema.TeeChart;

然后为 TChart 声明一个变量,并在 Page_Load 事件开始时创建它

private void Page_Load(object sender, System.EventArgs e) { tChart=new TChart(); /* ...add Series and data, etc ... */ }

图表检索的关键代码元素

图表检索的关键代码组件是:

客户端“获取”指令。 这可以通过提交按钮或其他方式(例如组合框)启动,并根据客户端参数从服务器“获取”图表。 图表请求可以作为“传统的 Get url 行发送,其中参数作为一个 URL 行传递,或者可以通过 ASP.NET 的“在页面之间传递服务器控制值”来完成。 调用服务器脚本的编码将在 WebForms Code behind 页面中进行。

private void sendInfo() { seriesType=DropDownList1.Items[DropDownList1.SelectedIndex].ToString(); viewType=CheckBox1.Checked.ToString(); Image1.ImageUrl="http://"+webServer /*use webserver variable for server*/ +"/TeeChartForNET/ASPStream/ProcessChart.aspx?seriestype=" +seriesType+"&view="+viewType; }

服务器脚本从客户端接收 GET 请求并运行其 Page_Load 事件。 如果可以创建图表并且接收的参数可用于定义图表的填充方式。 然后将图表呈现为图像并作为流向客户端返回。

private void Page_Load(object sender, System.EventArgs e) { tChart=new TChart(); tChart.AfterDraw += new Steema.TeeChart.TChart.PaintChartEventHandler(this.tChart_AfterDraw); /* ...add Series and data, etc ... */ //Process Get parameters received from client if (Request.QueryString["view"]=="False") tChart.Aspect.View3D=false; else tChart.Aspect.View3D=true; MemoryStream tempStream = new MemoryStream(); tChart.Export.Image.PNG.Save(tempStream); Response.ContentType="Image/PNG"; Response.OutputStream.Write(tempStream.ToArray(),0,(int)tempStream.Length); tempStream.Close(); }

添加事件

通过在图表创建后添加事件,可以为自由脚本 TeeChart ASP 应用程序添加图表创建事件。

private void Page_Load(object sender, System.EventArgs e) { tChart=new TChart(); tChart.AfterDraw += new Steema.TeeChart.TChart.PaintChartEventHandler(this.tChart_AfterDraw); /* ...add Series and data, etc ... */ MemoryStream tempStream = new MemoryStream(); tChart.Export.Image.PNG.Save(tempStream); Response.ContentType="Image/PNG"; Response.OutputStream.Write(tempStream.ToArray(),0,(int)tempStream.Length); tempStream.Close(); } private void tChart_AfterDraw(object sender, Steema.TeeChart.Drawing.Graphics3D g) { string tmpStr="Copyright My Organisation "+DateTime.Now.ToString(); g.TextOut(g.Chart.Width-(int)g.TextWidth(tmpStr)-5,g.Chart.Height-(int)g.TextHeight("H")-3,tmpStr); }

AfterDraw 事件代码将在图表创建时执行,在这种情况下,当图表呈现为图像时,相关消息将包含在图表画布上。 如果您希望在客户端页面图表上使用基于用户鼠标点击的交互式事件,我们建议您在 WebForm 上使用 WebChart 组件。

安全问题

通过安装程序安装 .NET 的默认 TeeChart 创建的文件夹和 IIS 虚拟文件夹足以访问 TeeChart 中包含的 ASP.NET 示例。 WebForm 应用程序假定在 IIS 中激活会话支持以移动临时图表信息。 可以在 Visual Studio.NET 中修改示例项目以使用“文件”作为临时存储图表的媒介。 在 Windows 2000 中运行良好的测试中。在 Windows 2003 中,默认安装的附加安全限制限制了使用默认“_chart_temp”文件夹的可能性(临时文件夹的名称和位置是可配置的)。 在 Win2003 服务器中,系统管理员必须修改安全权限,以允许相关 ASP.NET 应用程序将临时文件保存到磁盘。

网络图表工具

WebChart 工具可用于从编辑器工具面板添加到 WebChart。 许多非 WebChart 特定的工具可以与 WebChart 一起使用,除了那些响应鼠标移动的工具(除了下面介绍的 WebChart 工具本身)。

热点工具

该工具以最简单的形式激活数据点鼠标悬停标签,当鼠标经过一个点时显示。 热点工具也可用于 Winform 图表,但 WebChart 的操作性质不同,如此处所述。 WebChart Hotspot Tool 生成与每个数据点关联的地图区域。 可以从以下选项中选择地图操作:

标记

使用 Style 属性定义标记样式。

Steema.TeeChart.Tools.SeriesHotspot hotspotTool = ((Steema.TeeChart.Tools.SeriesHotspot)WebChart1.Chart.Tools[0]);

网址

使用 GetHTMLMap 事件设置从数据点调用的 URL。 URL 选项可以通过编辑器设置,但您必须对事件进行编码以设置正确的 URL。

//init code....
Steema.TeeChart.Tools.SeriesHotspot hotspotTool = ((Steema.TeeChart.Tools.SeriesHotspot)WebChart1.Chart.Tools[0]); hotspotTool.GetHTMLMap += new Steema.TeeChart.Tools.SeriesHotspotEventHandler(hotspotTool_GetHTMLMap); //event code:
private void hotspotTool_GetHTMLMap(Steema.TeeChart.Tools.SeriesHotspot sender, Steema.TeeChart.Tools.SeriesHotspotEventArgs e)
{ if (CheckBox1.Checked) //open new window? e.PointPolygon.Attributes="target='_blank'"; else e.PointPolygon.Attributes="target='_self'"; tab if (e.Series==WebChart1.Chart.Series[0]) e.PointPolygon.HREF="http://" + TextBox1.Text; //set URL according to textbox text + TextBox1.Text; //set URL according to textbox text if (e.Series==WebChart1.Chart.Series[1]) e.PointPolygon.HREF="http://" + TextBox2.Text; if (e.Series==WebChart1.Chart.Series[2]) e.PointPolygon.HREF="http://" + TextBox3.Text; + TextBox3.Text; if (e.Series==WebChart1.Chart.Series[3]) e.PointPolygon.HREF="http://" + TextBox4.Text;
}

脚本

脚本选项可用于处理您可能希望通过 Javascript 添加到图表的任何自定义内容或增值。 选择脚本作为选项TeeChart时,请选中使用帮助程序脚本的选项,当前可用:'注释'。 您可以选择不使用 Helperscript 并定义您自己的输出。

protected void Page_Load(object sender, System.EventArgs e)
{ //initialization Chart ch1 = WebChart1.Chart; Steema.TeeChart.Themes.ColorPalettes.ApplyPalette(ch1, 9); Steema.TeeChart.Tools.SeriesHotspot hotspot1 = new Steema.TeeChart.Tools.SeriesHotspot(); ch1.Legend.Visible = false; ch1.Tools.Add(hotspot1); hotspot1.MapAction = Steema.TeeChart.Styles.MapAction.Script; hotspot1.GetHTMLMap += new Steema.TeeChart.Tools.SeriesHotspotEventHandler(hotspot1_GetHTMLMap); //....etc... more init code
} private void hotspot1_GetHTMLMap(Steema.TeeChart.Tools.SeriesHotspot sender, Steema.TeeChart.Tools.SeriesHotspotEventArgs e)
{ //This example calls a Bar Series but e.Series and e.PointPolygon.ValueIndex could be sent //as arguments for a drilldown query. //The prepared HelperScriptAnnotation text accepts your text as a variable for the Annotation //In the following case it calls an aspx script to generate and return a Chart as an image e.PointPolygon.Attributes=String.Format(Texts.HelperScriptAnnotation); //The annotation could, alternatively, present text in the mouseover hint, eg.: //e.PointPolygon.Attributes=String.Format(Steema.TeeChart.Texts.HelperScriptAnnotation,"hello world.");
}

滚动工具

ScrollTool 将滚动条添加到 WebChart 的底部。 您可以设置图表的可见部分大小和起始位置。 图表也是可拖动的,尽管该功能可能被停用。 ScrollTool 可以与 Hotspot Tool 结合使用。

使用编辑器添加 ScrollTool 会自动将 Chart 设置为 2D 并移动下 Axis 以为滚动条留出空间。 滚动条在设计时不可见。

将 ViewSegmentSize 和 StartPosition 与 SegmentViewUnits 结合使用来设置可滚动大小。

Steema.TeeChart.Tools.ScrollTool scrollTool = ((Steema.TeeChart.Tools.ScrollTool)WebChart1.Chart.Tools[0]);
scrollTool.StartPosition = 30;
scrollTool.SegmentViewUnits = Steema.TeeChart.Tools.ScrollToolViewUnit.percent;
scrollTool.ViewSegmentSize = 20;

缩放工具

ZoomTool 允许选择要处理的图表的子区域以进行缩放。 可以通过鼠标在图表区域上拖动来选择该区域,缩放坐标返回到服务器以创建一个缩放区域。 该区域可以通过在相反方向拖动来取消缩放。

要使用 ZoomTool,您应该将以下方法添加到您的页面代码中。

private void CheckZoom(WebChart wChart)
{ ArrayList zoomedState=(ArrayList)Session[wChart.ID+"Zoomed"]; zoomedState=((Steema.TeeChart.Tools.ZoomTool)wChart.Chart.Tools[0]).SetCurrentZoom(Request, zoomedState); if (zoomedState==null) Session.Remove(wChart.ID+"Zoomed"); else Session.Add(wChart.ID+"Zoomed",zoomedState);
}

或 Page.Cache:

{ ArrayList zoomedState = (ArrayList)Page.Cache[wChart.ID + "Zoomed"]; zoomedState = ((Steema.TeeChart.Tools.ZoomTool)wChart.Chart.Tools[0]).SetCurrentZoom(Request, zoomedState); if (zoomedState == null) Page.Cache.Remove(wChart.ID + "Zoomed"); else Page.Cache.Add(wChart.ID + "Zoomed", zoomedState);
}

窗口加载事件

将缩放或滚动工具添加到 WebChart 时,需要使用 Window.onload 事件来初始化工具的特征。 如果您需要根据自己的需要进一步使用 onload 事件,请在页面中添加一个名为 windowOnload 的新函数并将您的代码放在那里。

 


推荐阅读
  • 如何使用Java获取服务器硬件信息和磁盘负载率
    本文介绍了使用Java编程语言获取服务器硬件信息和磁盘负载率的方法。首先在远程服务器上搭建一个支持服务端语言的HTTP服务,并获取服务器的磁盘信息,并将结果输出。然后在本地使用JS编写一个AJAX脚本,远程请求服务端的程序,得到结果并展示给用户。其中还介绍了如何提取硬盘序列号的方法。 ... [详细]
  • 搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的详细步骤
    本文详细介绍了搭建Windows Server 2012 R2 IIS8.5+PHP(FastCGI)+MySQL环境的步骤,包括环境说明、相关软件下载的地址以及所需的插件下载地址。 ... [详细]
  • 本文介绍了如何使用php限制数据库插入的条数并显示每次插入数据库之间的数据数目,以及避免重复提交的方法。同时还介绍了如何限制某一个数据库用户的并发连接数,以及设置数据库的连接数和连接超时时间的方法。最后提供了一些关于浏览器在线用户数和数据库连接数量比例的参考值。 ... [详细]
  • http:my.oschina.netleejun2005blog136820刚看到群里又有同学在说HTTP协议下的Get请求参数长度是有大小限制的,最大不能超过XX ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 在重复造轮子的情况下用ProxyServlet反向代理来减少工作量
    像不少公司内部不同团队都会自己研发自己工具产品,当各个产品逐渐成熟,到达了一定的发展瓶颈,同时每个产品都有着自己的入口,用户 ... [详细]
  • 本文介绍了在使用Python中的aiohttp模块模拟服务器时出现的连接失败问题,并提供了相应的解决方法。文章中详细说明了出错的代码以及相关的软件版本和环境信息,同时也提到了相关的警告信息和函数的替代方案。通过阅读本文,读者可以了解到如何解决Python连接服务器失败的问题,并对aiohttp模块有更深入的了解。 ... [详细]
  • 利用Visual Basic开发SAP接口程序初探的方法与原理
    本文介绍了利用Visual Basic开发SAP接口程序的方法与原理,以及SAP R/3系统的特点和二次开发平台ABAP的使用。通过程序接口自动读取SAP R/3的数据表或视图,在外部进行处理和利用水晶报表等工具生成符合中国人习惯的报表样式。具体介绍了RFC调用的原理和模型,并强调本文主要不讨论SAP R/3函数的开发,而是针对使用SAP的公司的非ABAP开发人员提供了初步的接口程序开发指导。 ... [详细]
  • WebSocket与Socket.io的理解
    WebSocketprotocol是HTML5一种新的协议。它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送 ... [详细]
  • Java在运行已编译完成的类时,是通过java虚拟机来装载和执行的,java虚拟机通过操作系统命令JAVA_HOMEbinjava–option来启 ... [详细]
  • Skywalking系列博客1安装单机版 Skywalking的快速安装方法
    本文介绍了如何快速安装单机版的Skywalking,包括下载、环境需求和端口检查等步骤。同时提供了百度盘下载地址和查询端口是否被占用的命令。 ... [详细]
  • Centos7.6安装Gitlab教程及注意事项
    本文介绍了在Centos7.6系统下安装Gitlab的详细教程,并提供了一些注意事项。教程包括查看系统版本、安装必要的软件包、配置防火墙等步骤。同时,还强调了使用阿里云服务器时的特殊配置需求,以及建议至少4GB的可用RAM来运行GitLab。 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • 怎么在PHP项目中实现一个HTTP断点续传功能发布时间:2021-01-1916:26:06来源:亿速云阅读:96作者:Le ... [详细]
author-avatar
一起去钓鱼
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有