原創(chuàng)|其它|編輯:郝浩|2012-07-10 22:35:48.000|閱讀 300 次
概述:一個對于WebChart的替代使用是在asp(aspx)頁面中以scripted ‘non-visible’控件的方式使用TeeChart。 TeeChart for .NET發(fā)布了一個形象的例子來演示此技術(shù)。你可以在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發(fā)布了一個形象的例子來演示此技術(shù)。你可以在TeeChart's ASP.NET演示項目中找到它,在‘Interacting with Charts\Chart as Image’演示文件下有個例子的標題是‘Series Types as Image’。
通過內(nèi)部的圖表類,TeeChart也許可以在ASP中稱為free-scripted,為了利用TeeChart事件,我們建議使用TeeChart Windows Forms組件或者WebChart控件。
使用腳本添加圖表
假設(shè)使用TeeChart,下面是您建立TeeChart項目的初始化步驟:
1. 創(chuàng)建新的ASP.NET Forms項目。這樣就建立了一個WebForm頁面,您將會當作客戶端頁面來使用(參閱例子SeriesTypes.aspx頁面)。
2. 添加新的WebForm頁面。此頁面將是不可見的,將用于處理圖表代碼的服務(wù)器端。(參閱例子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服務(wù)器腳本(ShowSeries.aspx)。客戶端頁面上的提交按鈕調(diào)用含有ServerChart處理的參數(shù)化變量的服務(wù)器腳本。該按鈕發(fā)送變量來作為設(shè)置客戶端頁面上圖表圖像的imageURL的參數(shù)的一部分,因此,返回一個基于已處理的參數(shù)的動態(tài)圖表。
對TeeChart 編碼
為了在服務(wù)器端對TeeChart進行編碼應(yīng)在腳本頁面上添加一個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 ... */
}
表檢索的關(guān)鍵碼元素
表檢索的關(guān)鍵碼元素是:
1. 客戶端‘Get’說明。這可以由一個提交按鈕來初始化或者其它手段,例如一個ComboBox并基于客戶端參數(shù)從服務(wù)端‘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”這樣(請參閱微軟對這個問題的幫助主題獲取更多詳情)。調(diào)用服務(wù)器腳本的代碼將在頁面后的的WebForms Code中編寫。
例子
在此例中,變量是來自不同WebForm的頁面元素并且以參數(shù)的方式添加到圖像’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. 服務(wù)端腳本接收來自客戶端的GET請求并運行Page_Load事件。在事件中,圖表可能被創(chuàng)建且接收到的參數(shù)可能被用來定義圖表如何填充。圖表會呈現(xiàn)為一個圖像并向客戶端返回一個數(shù)據(jù)流。
例子
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應(yīng)用程序。
例子
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事件中的代碼就會被執(zhí)行,在這種情況下,當圖表呈現(xiàn)為圖像時,相關(guān)信息將包含在Chart Canvas上。如果您想要在客戶端頁面的圖表上使用基于用戶鼠標點擊的交互式事件,我們建議您在WebForm上使用WebChart組件。
安全問題
通過Installer默認安裝的TeeChart for .NET創(chuàng)建了文件夾和足以訪問TeeChart所包含的ASP.NET例子的IIS虛擬文件夾。TWebForm應(yīng)用程序采取IIS支持的Session來移動臨時圖表的信息。例子中的項目可以在Visual Studio.NET中使用臨時存儲圖表的媒介‘File’被修改。經(jīng)測試,在Windows 2000中運行良好。在Windows 2003中默認安裝了附加的安全限制,這可能限制了默認文件夾‘_chart_temp’(臨時文件夾的名稱和位置是可配置的)的使用。Win2003服務(wù)器的安全權(quán)利必須經(jīng)過系統(tǒng)管理員修改才允許有關(guān)ASP.NET應(yīng)用程序中的臨時文件保存到磁盤。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:慧都控件網(wǎng)