原創(chuàng)|其它|編輯:郝浩|2012-07-10 22:13:12.000|閱讀 890 次
概述:TeeChart是通過(guò)WebChart TeeChart控件與WebForms集成的。WebChart可以在標(biāo)準(zhǔn)TeeChart.NET中文版安裝中的工具箱中找到。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門(mén)軟控件火熱銷(xiāo)售中 >>
TeeChart是通過(guò)WebChart TeeChart控件與WebForms集成的。WebChart可以在標(biāo)準(zhǔn)TeeChart.NET中文版安裝中的工具箱中找到。
TooBox中WebChart的圖標(biāo)
向窗體添加一個(gè)圖表
使用圖表編輯器和屬性選項(xiàng)來(lái)進(jìn)行設(shè)計(jì)
圖表編輯器提供了多種選項(xiàng)來(lái)配置圖表在運(yùn)行時(shí)的很多問(wèn)題。設(shè)置會(huì)被保存到WebForm。請(qǐng)參閱關(guān)于圖表編輯器使用的教程1和教程2,WebChart編輯器的使用與基于圖表的Windows窗體的使用是完全相同的。
圖像格式(PictureFormat)
WebChart就像一張圖片顯示在WebForm上,默認(rèn)的格式是PNG,但您可以在Properties Windows中通過(guò)PictureFormat屬性來(lái)進(jìn)行修改。由于網(wǎng)頁(yè)的一致性,我們推薦使用PNG,JPEG或者GIF格式,盡管Internet Explorer也支持Bitmap格式。
使用GIF圖像格式
相對(duì)于全部彩色復(fù)制,GIF使用了256色的縮小,所以我們建議您使用其它圖像格式的一種。
TempChart屬性可以用來(lái)選擇臨時(shí)圖表創(chuàng)建后及在網(wǎng)頁(yè)上顯示前的保存方式。這里有4個(gè)可用的設(shè)置:
性能與所有的緩存技術(shù)是類(lèi)似的,但磁盤(pán)性能可能會(huì)積極地或消極地影響使用'File'選項(xiàng)來(lái)產(chǎn)生TempChart,所以‘File’是最快的選擇。
File
如果你想要把臨時(shí)文件寫(xiě)到磁盤(pán)上,那么就可以使用File設(shè)置。默認(rèn)情況下,TeeChart安裝時(shí)就創(chuàng)建了關(guān)于臨時(shí)文件位置的注冊(cè)表鍵值和虛擬文件夾的名稱(chēng)。注冊(cè)表鍵值如下所示:
[HKEY_LOCAL_MACHINE\SOFTWARE\Steema Software\TeeChart.NET]
"VirtualShare"="/TeeChartForNET"
"ShareFolder"="C:\\Program Files\\Steema Software\\TeeChart for .NET v3\\TeeChartForNET"
如果接受默認(rèn)的安裝位置,以上設(shè)置是在標(biāo)準(zhǔn)的英語(yǔ)語(yǔ)言機(jī)器上所創(chuàng)建的。TeeChartNET虛擬文件夾是被TeeChart安裝文件建立的。您可以更改這些注冊(cè)表設(shè)置的前提是你創(chuàng)建必要的IIS虛擬共享位置,以反映新的注冊(cè)表值。
WebChart把文件保存到ShareFolder注冊(cè)表鍵值下一個(gè)名為_(kāi)Chart_tmp的文件夾中。
臨時(shí)文件不會(huì)被TeeChart刪除,雖然一個(gè)應(yīng)用程序可能會(huì)像Windows預(yù)設(shè)任務(wù)一樣自動(dòng)的為你這樣做,請(qǐng)檢查當(dāng)前版本TeeChar所含內(nèi)容。
Session
Session是一個(gè)在磁盤(pán)上不留下任何文件的臨時(shí)文件存儲(chǔ)的設(shè)置,并刪除自己已緩存的內(nèi)存文件(也可參閱見(jiàn)Cache和HttpHandler選項(xiàng))。在某些情況下,你可能會(huì)發(fā)現(xiàn)它略慢于臨時(shí)磁盤(pán)文件。圖表能夠成功運(yùn)行Session變量,有兩個(gè)條件必須為真:
<sessionState
mode="InProc"
InProc是默認(rèn)的設(shè)置并且意味著Session已經(jīng)被應(yīng)用程序激活。
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);
}
}
該腳本恢復(fù)了事先已經(jīng)被WebChart保存到Session緩存的圖表,該腳本不僅向?yàn)g覽器返回了圖表而且從緩存中移除了圖表。
Cache
Cache選項(xiàng)與安裝到Session Chart緩存選項(xiàng)十分相似。'Cache'是一個(gè)實(shí)用的選項(xiàng),因?yàn)樗褂玫木彺鎸?duì)象屬于ASP.NET WebForm頁(yè)面。鑒于'Session'會(huì)受到某些Web Servers的限制,因此使用Cache很容易對(duì)大多數(shù)ASP.NET應(yīng)用程序進(jìn)行配置(如在管理員選擇出于安全原因禁用會(huì)話支持)。
Cache選項(xiàng)要求使用GetChart.aspx文件。
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();
}
該腳本恢復(fù)了事先已經(jīng)被WebChart保存到Page Cache的圖表,該腳本不僅向?yàn)g覽器返回了圖表而且從緩存中移除了圖表。
Httphandler
HttpHandler選項(xiàng)使用內(nèi)部的TeeChart(WebChart)生成器恢復(fù)該頁(yè)的圖表圖像。這個(gè)選項(xiàng)不需要產(chǎn)生任何臨時(shí)文件以及附加的aspx文件來(lái)恢復(fù)圖表(在Session和Cache的情況下)。該選項(xiàng)只需要對(duì)web.config文件做一個(gè)修改:
在web.config的<system.web> </system.web>標(biāo)簽中的任何位置假如以下部分:
<system.web>
<httpHandlers>
<add verb="*" path="TeeChartImgGen.ashx" type="Steema.TeeChart.Web.TeeChartImgGen, TeeChart"/>
</httpHandlers>
/*..content cut for brevity ..*/
</system.web>
使用交互式圖表事件(當(dāng)Chart沒(méi)有WebChart Tools時(shí),AutoPostBack屬性為T(mén)rue)
圖表中的Load事件和在運(yùn)行時(shí)響應(yīng)用戶鼠標(biāo)點(diǎn)擊的交互事件可能用于TeeChart的WebChart。沒(méi)有特別的動(dòng)作需要使用繪制事件如'AfterDraw',我們可以從屬性瀏覽器的事件列表來(lái)選擇一個(gè)圖表事件。如果沒(méi)有TeeChart WebChart Tool如Zoom,Scroll或者Hotspot顯示在圖表中,您需要設(shè)置AutoPostback屬性為T(mén)rue來(lái)激活交互(用戶點(diǎn)擊)事件。對(duì)于交互事件,如果上述Tools是當(dāng)前點(diǎn)擊自動(dòng)激活的反應(yīng),圖表將響應(yīng)用戶的鼠標(biāo)點(diǎn)擊事件,回發(fā)在哪里發(fā)生的點(diǎn)擊的信息到服務(wù)器,于是你的服務(wù)器端代碼可以采取針對(duì)該事件的行動(dòng)。你可以從屬性瀏覽器的事件列表選擇想要使用的事件,然后對(duì)該事件進(jìn)行編碼。
參閱‘Event example’教程獲取更多關(guān)于WebChart事件的信息。
事件舉例
如果您想要在WebChart中使用一個(gè)Click事件如ClickSeries,請(qǐng)確認(rèn)圖表的AutoPostback設(shè)置為T(mén)rue。
事件可以通過(guò)雙擊在屬性瀏覽器事件列表中需要的事件來(lái)進(jìn)行設(shè)置:
雙擊列表中的一個(gè)條目創(chuàng)建代碼事件的聲明。
例子
private int xVal;
private int yVal;
private void WebChart1_AfterDraw(object sender, Steema.TeeChart.Drawing.Graphics3D g)
{
g.TextOut(xVal,yVal,"onAfterDraw");
}
上述事件將輸出文字到圖表上的一個(gè)由xVal和yVal變量值決定的位置
根據(jù)點(diǎn)擊的位置來(lái)設(shè)置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);
}
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:慧都控件網(wǎng)