彩票走势图

TeeChart Pro .Net汉化教程十二:ASP应用程序中的脚本编程

原创|其它|编辑:郝浩|2012-07-10 22:35:48.000|阅读 300 次

概述:一个对于WebChart的替代使用是在asp(aspx)页面中以scripted ‘non-visible’控件的方式使用TeeChart。 TeeChart for .NET发布了一个形象的例子来演示此技术。你可以在TeeChart's ASP.NET演示项目中找到它,在‘Interacting with Charts\Chart as Image’演示文件下有个例子的标题是‘Series Types as Image’。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

一个对于WebChart的替代使用是在asp(aspx)页面中以scripted ‘non-visible’控件的方式使用TeeChart。 TeeChart for .NET发布了一个形象的例子来演示此技术。你可以在TeeChart's ASP.NET演示项目中找到它,在‘Interacting with Charts\Chart as Image’演示文件下有个例子的标题是‘Series Types as Image’。

通过内部的图表类,TeeChart也许可以在ASP中称为free-scripted,为了利用TeeChart事件,我们建议使用TeeChart Windows Forms组件或者WebChart控件。

使用脚本添加图表

假设使用TeeChart,下面是您建立TeeChart项目的初始化步骤:

1. 创建新的ASP.NET Forms项目。这样就建立了一个WebForm页面,您将会当作客户端页面来使用(参阅例子SeriesTypes.aspx页面)。

2. 添加新的WebForm页面。此页面将是不可见的,将用于处理图表代码的服务器端。(参阅例子ShowSeries.aspx 页面) 。

-该页面必须包含System.Windows.Forms.dll的引用。因为TeeChart组件是一个基于Windows.Forms的组件。

3. Follow the code steps highlighted here and in the ASPStreams example as a guide to how to setup your project.

处理流程

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

对TeeChart 编码

为了在服务器端对TeeChart进行编码应在脚本页面上添加一个TeeChart的引入:

例如:

using Steema.TeeChart;

然后为TeeChart声明一个变量并在Page_Load事件的开始的时候建立。

例如:

private TChart tChart;

        private void Page_Load(object sender, System.EventArgs e)

        {

            tChart=new TChart();      

 

            /* ...add Series and data, etc ... */

        }

表检索的关键码元素

表检索的关键码元素是:

1. 客户端‘Get’说明。这可以由一个提交按钮来初始化或者其它手段,例如一个ComboBox并基于客户端参数从服务端‘gets’图表。一个图表的请求可能像‘traditional Get url line where the parameters are passed as one URL line or may be done via ASP.NET’的“Passing Server Control Values Between Pages”这样(请参阅微软对这个问题的帮助主题获取更多详情)。调用服务器脚本的代码将在页面后的的WebForms Code中编写。

例子

在此例中,变量是来自不同WebForm的页面元素并且以参数的方式添加到图像’Get‘URL路径。

     ;   private void sendInfo()

        {

            seriesType=
DropDownList1.Items[DropDownList1.SelectedIndex].ToString();

            viewType=CheckBox1.Checked.ToString();

            Image1.ImageUrl="//"+webServer  /*use webserver variable for server*/

                +"/TeeChartForNET/ASPStream/ProcessChart.aspx?seriestype="

                +seriesType+"&view="+viewType;

        }

2. 服务端脚本接收来自客户端的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();

        }

添加事件

通过在图表建立后添加事件,图表的建立事件可能会被添加到Free-scripted 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事件中的代码就会被执行,在这种情况下,当图表呈现为图像时,相关信息将包含在Chart Canvas上。如果您想要在客户端页面的图表上使用基于用户鼠标点击的交互式事件,我们建议您在WebForm上使用WebChart组件。

安全问题

通过Installer默认安装的TeeChart for .NET创建了文件夹和足以访问TeeChart所包含的ASP.NET例子的IIS虚拟文件夹。TWebForm应用程序采取IIS支持的Session来移动临时图表的信息。例子中的项目可以在Visual Studio.NET中使用临时存储图表的媒介‘File’被修改。经测试,在Windows 2000中运行良好。在Windows 2003中默认安装了附加的安全限制,这可能限制了默认文件夹‘_chart_temp’(临时文件夹的名称和位置是可配置的)的使用。Win2003服务器的安全权利必须经过系统管理员修改才允许有关ASP.NET应用程序中的临时文件保存到磁盘。

 


(慧都控件网版权所有,转载请注明出处,否则追究法律责任)
标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@pclwef.cn

文章转载自:慧都控件网

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP