【TeeChart Pro ActiveX教程】(九):TeeChart、WebChart和ASP(上)
WebForms
TeeChart通过WebChart TeeChart Control 集成用于WebForms 。可以在标准TeeChart.NET安装中的ToolBox中找到WebChart。
1. 将图表添加到表单
- 从ToolBox中选择WebChart组件并将其拖到WebForm上并拖出到大小
- 右键单击图表以选择“Edit...”选项并打开图表编辑器
- 使用图表编辑器,您可以添加和修改图表的系列和轴以及其他特征
2. 使用图表编辑器和属性选项进行设计
图表编辑器提供了为运行时配置图表的大多数方面的选项。设置保存在WebForm中。有关图表编辑器的一般用法,请参阅教程1和2,使用WebChart的编辑器在所有方面与基于Windows窗体的图表的使用相同。
3. 图像格式(PictureFormat)
WebChart在WebForm上呈现为图像,默认格式为PNG,但可以通过Properties Windows中的PictureFormat属性进行更改。为了与网页兼容,我们建议使用PNG,JPEG或GIF格式,但Internet Explorer浏览器也支持Bitmap。
使用GIF图像格式 GIF使用256色减少,因此对于全色再现,我们建议您使用其他图像格式之一。 *注意请注意,您对GIF图像格式的使用可能需要授权。
3. TempChart属性-File,Session,Cache或Httphandler
TempChart属性可用于选择在创建之后和浏览器页面上显示之前应如何存储临时图表。有4种可用设置:
- File
- Session
- Cache
- Httphandler
Performance类似于所有缓存技术,但磁盘性能可能会影响正面或负面使用'File'选项来生成TempChart,使'File'可以是最快的选项。
3.1 File
如果要将临时文件写入磁盘,则应使用“文件”设置。默认情况下,安装TeeChart时,它会创建具有临时文件位置和等效虚拟文件夹名称的注册表项。关键如下:
[HKEY_LOCAL_MACHINE\SOFTWARE\Steema Software\TeeChart.NET] "VirtualShare"="/TeeChartForNET" "ShareFolder"="C:\\Program Files\\Steema Software\\TeeChart for .NET v3\\TeeChartForNET"
如果接受默认安装位置,则上述设置将在标准英语语言机器中创建。TeeChartNET虚拟文件夹由TeeChart安装程序创建。如果您创建必要的IIS虚拟共享位置以反映新的注册表值,则可以更改这些注册表设置。 WebChart将文件保存到ShareFolder注册表项中指定的文件夹下名为_Chart_tmp的文件夹中。 TeeChart不会删除临时文件,但您可以自动包含一个实用程序作为Windows计划任务,请使用当前版本检查TeeChart包含。
3.2 Session
Session是临时文件存储的设置,它不会在磁盘上留下任何文件并删除其自己的缓存内存文件(另请参阅Cache和Httphandler选项)。在某些情况下,您可能会发现它比临时磁盘文件稍慢。要使用Session变量成功运行Chart,必须满足两个条件:
必须为应用程序启用会话。'Enabled'是默认行为,可以在项目web.config文件中检查:
<sessionState mode="InProc"
InProc是默认设置,表示为此应用程序启用了Session。
您应该包含一个aspx脚本模块以从内存中检索图表。aspx脚本的名称应该称为'GetChart'。TeeChart提供的WebForm ASP.NET示例中包含一个示例。要从头开始创建一个新的GetChart模块,请将新的WebForm添加到项目中(也可以是任何aspx文件),将其命名为“GetChart”,并将以下代码添加到Page_Load事件中:
GetChart.aspx.cs
private void Page_Load(object sender, System.EventArgs e) { string chartName=Request.QueryString["Chart"]; if (Session[chartName]!=null) { System.IO.MemoryStream chartStream = new System.IO.MemoryStream(); chartStream=((System.IO.MemoryStream)Session[chartName]); Response.ContentType = "image/" + "png"; Response.OutputStream.Write(chartStream.ToArray(),0,(int)chartStream.Length); chartStream.Close(); Session.Remove(chartName); } }
该脚本恢复了WebChart先前保存到会话缓存的图表。该脚本将图表返回给浏览器并将其从缓存中删除。
3.3 Cache
缓存选项在设置中与会话图缓存选项非常相似。'Cache'是一个实用的选项,因为它使用属于ASP.NET WebForm页面的Cache对象,因此很容易出现在大多数ASP.NET应用程序配置中,而'Session'容易受到某些Web服务器的管理限制(即,出于安全原因,管理员已选择禁用会话支持)。
缓存选项需要使用GetChart.aspx文件。
您应该包含一个aspx脚本模块以从内存中检索图表。aspx脚本的名称应该称为'GetChart'。TeeChart提供的WebForm ASP.NET示例中包含一个示例。要从头开始创建一个新的GetChart模块,请将新的WebForm添加到项目中(也可以是任何aspx文件),将其命名为“GetChart”,并将以下代码添加到Page_Load事件中:
GetChart.aspx.cs
private void Page_Load(object sender, System.EventArgs e) { string chartName=Request.QueryString["Chart"]; if (Page.Cache[chartName]!=null) { MemoryStream chartStream = new MemoryStream(); chartStream=((MemoryStream)Page.Cache[chartName]); Response.ContentType = "image/" + "png"; Response.OutputStream.Write(chartStream.ToArray(),0,(int)chartStream.Length); chartStream.Close(); } }
3.4 Httphandler
Httphandler选项使用内部TeeChart(WebChart)生成器来恢复页面的图表图像。该选项不生成临时文件,并且不需要额外的aspx文件来恢复图表(如会话和缓存选项的情况)。该选项需要对web.config文件进行一次修改:
VSNet 2010之前的早期版本VSNET。在web.config < system.web > < /system.web> tages之间的任何位置放置以下部分:
<system.web> <httpHandlers> <add verb="*" path="TeeChartImgGen.ashx" type="Steema.TeeChart.Web.TeeChartImgGen, TeeChart"/> </httpHandlers> /*..content cut for brevity ..*/ </system.web>
VSNET的后续版本,VSNET2010 +:
<system.webServer> <handlers> <add name="TeeChartHandler" verb="*" path="TeeChartImgGen.ashx" type="Steema.TeeChart.Web.TeeChartImgGen, TeeChart"/> </handlers> /*..content cut for brevity ..*/ </system.webServer>
**注意。使用TeeChart.Standard.dll时,请在teechart.standard的末尾替换“TeeChart”。
<add name="TeeChartHandler" verb="*" path="TeeChartImgGen.ashx" type="Steema.TeeChart.Web.TeeChartImgGen, TeeChart.Standard"/>
4 使用交互式图表事件(图表中没有WebChart工具时,AutoPostback属性为True)
响应用户鼠标点击图表的加载事件和运行时交互式事件可以与TeeChart的WebChart一起使用。不需要采取特殊操作来使用诸如'AfterDraw'之类的绘制事件,可以从Property浏览器事件列表中选择Chart事件。如果图表中没有TeeChart WebChart Tool(如Zoom,Scroll或Hotspot),则应将AutoPostback属性设置为True以启用交互式(用户点击)事件。如果存在上述工具,则会自动激活点击响应。对于交互式事件,图表将响应用户鼠标点击事件,将点击发生的位置信息发回服务器,然后服务器端代码可以对事件进行操作。然后,可以从属性浏览器事件列表中选择要使用的事件进行编码。 有关WebChart事件的更多信息,请参阅“事件示例”部分。
4.1 事件示例
如果您希望在WebChart中使用Click事件,例如ClickSeries,请务必将Chart AutoPostback设置为true。 可以通过在属性浏览器事件列表中
双击所需事件来设置事件:双击列表中的条目可创建代码内事件声明,例:
private int xVal; private int yVal; private void WebChart1_AfterDraw(object sender, Steema.TeeChart.Drawing.Graphics3D g) { g.TextOut(xVal,yVal,"onAfterDraw"); }
上述事件将在由xVal和yVal变量值决定的位置处将文本输出到Chart。 可以根据点击位置设置x和y值
private void WebChart1_ClickSeries(object sender, Steema.TeeChart.Series s, int valueIndex, System.EventArgs e) { xVal=s.CalcXPos(valueIndex); yVal=s.CalcYPos(valueIndex); }
购买TeeChart Pro AciveX正版授权,请点击“”哟!