【TeeChart Pro ActiveX教程】(九):TeeChart、WebChart和ASP(上)
WebForms
TeeChart通過WebChart TeeChart Control 集成用于WebForms ??梢栽跇?biāo)準(zhǔn)TeeChart.NET安裝中的ToolBox中找到WebChart。
1. 將圖表添加到表單
- 從ToolBox中選擇WebChart組件并將其拖到WebForm上并拖出到大小
- 右鍵單擊圖表以選擇“Edit...”選項(xiàng)并打開圖表編輯器
- 使用圖表編輯器,您可以添加和修改圖表的系列和軸以及其他特征
2. 使用圖表編輯器和屬性選項(xiàng)進(jìn)行設(shè)計(jì)
圖表編輯器提供了為運(yùn)行時(shí)配置圖表的大多數(shù)方面的選項(xiàng)。設(shè)置保存在WebForm中。有關(guān)圖表編輯器的一般用法,請參閱教程1和2,使用WebChart的編輯器在所有方面與基于Windows窗體的圖表的使用相同。
3. 圖像格式(PictureFormat)
WebChart在WebForm上呈現(xiàn)為圖像,默認(rèn)格式為PNG,但可以通過Properties Windows中的PictureFormat屬性進(jìn)行更改。為了與網(wǎng)頁兼容,我們建議使用PNG,JPEG或GIF格式,但I(xiàn)nternet Explorer瀏覽器也支持Bitmap。
使用GIF圖像格式 GIF使用256色減少,因此對于全色再現(xiàn),我們建議您使用其他圖像格式之一。 *注意請注意,您對GIF圖像格式的使用可能需要授權(quán)。
3. TempChart屬性-File,Session,Cache或Httphandler
TempChart屬性可用于選擇在創(chuàng)建之后和瀏覽器頁面上顯示之前應(yīng)如何存儲臨時(shí)圖表。有4種可用設(shè)置:
- File
- Session
- Cache
- Httphandler
Performance類似于所有緩存技術(shù),但磁盤性能可能會(huì)影響正面或負(fù)面使用'File'選項(xiàng)來生成TempChart,使'File'可以是最快的選項(xiàng)。
3.1 File
如果要將臨時(shí)文件寫入磁盤,則應(yīng)使用“文件”設(shè)置。默認(rèn)情況下,安裝TeeChart時(shí),它會(huì)創(chuàng)建具有臨時(shí)文件位置和等效虛擬文件夾名稱的注冊表項(xiàng)。關(guān)鍵如下:
[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)英語語言機(jī)器中創(chuàng)建。TeeChartNET虛擬文件夾由TeeChart安裝程序創(chuàng)建。如果您創(chuàng)建必要的IIS虛擬共享位置以反映新的注冊表值,則可以更改這些注冊表設(shè)置。 WebChart將文件保存到ShareFolder注冊表項(xiàng)中指定的文件夾下名為_Chart_tmp的文件夾中。 TeeChart不會(huì)刪除臨時(shí)文件,但您可以自動(dòng)包含一個(gè)實(shí)用程序作為Windows計(jì)劃任務(wù),請使用當(dāng)前版本檢查TeeChart包含。
3.2 Session
Session是臨時(shí)文件存儲的設(shè)置,它不會(huì)在磁盤上留下任何文件并刪除其自己的緩存內(nèi)存文件(另請參閱Cache和Httphandler選項(xiàng))。在某些情況下,您可能會(huì)發(fā)現(xiàn)它比臨時(shí)磁盤文件稍慢。要使用Session變量成功運(yùn)行Chart,必須滿足兩個(gè)條件:
必須為應(yīng)用程序啟用會(huì)話。'Enabled'是默認(rèn)行為,可以在項(xiàng)目web.config文件中檢查:
<sessionState mode="InProc"
InProc是默認(rèn)設(shè)置,表示為此應(yīng)用程序啟用了Session。
您應(yīng)該包含一個(gè)aspx腳本模塊以從內(nèi)存中檢索圖表。aspx腳本的名稱應(yīng)該稱為'GetChart'。TeeChart提供的WebForm ASP.NET示例中包含一個(gè)示例。要從頭開始創(chuàng)建一個(gè)新的GetChart模塊,請將新的WebForm添加到項(xiàng)目中(也可以是任何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); } }
該腳本恢復(fù)了WebChart先前保存到會(huì)話緩存的圖表。該腳本將圖表返回給瀏覽器并將其從緩存中刪除。
3.3 Cache
緩存選項(xiàng)在設(shè)置中與會(huì)話圖緩存選項(xiàng)非常相似。'Cache'是一個(gè)實(shí)用的選項(xiàng),因?yàn)樗褂脤儆贏SP.NET WebForm頁面的Cache對象,因此很容易出現(xiàn)在大多數(shù)ASP.NET應(yīng)用程序配置中,而'Session'容易受到某些Web服務(wù)器的管理限制(即,出于安全原因,管理員已選擇禁用會(huì)話支持)。
緩存選項(xiàng)需要使用GetChart.aspx文件。
您應(yīng)該包含一個(gè)aspx腳本模塊以從內(nèi)存中檢索圖表。aspx腳本的名稱應(yīng)該稱為'GetChart'。TeeChart提供的WebForm ASP.NET示例中包含一個(gè)示例。要從頭開始創(chuàng)建一個(gè)新的GetChart模塊,請將新的WebForm添加到項(xiàng)目中(也可以是任何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選項(xiàng)使用內(nèi)部TeeChart(WebChart)生成器來恢復(fù)頁面的圖表圖像。該選項(xiàng)不生成臨時(shí)文件,并且不需要額外的aspx文件來恢復(fù)圖表(如會(huì)話和緩存選項(xiàng)的情況)。該選項(xiàng)需要對web.config文件進(jìn)行一次修改:
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的后續(xù)版本,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時(shí),請?jiān)趖eechart.standard的末尾替換“TeeChart”。
<add name="TeeChartHandler" verb="*" path="TeeChartImgGen.ashx" type="Steema.TeeChart.Web.TeeChartImgGen, TeeChart.Standard"/>
4 使用交互式圖表事件(圖表中沒有WebChart工具時(shí),AutoPostback屬性為True)
響應(yīng)用戶鼠標(biāo)點(diǎn)擊圖表的加載事件和運(yùn)行時(shí)交互式事件可以與TeeChart的WebChart一起使用。不需要采取特殊操作來使用諸如'AfterDraw'之類的繪制事件,可以從Property瀏覽器事件列表中選擇Chart事件。如果圖表中沒有TeeChart WebChart Tool(如Zoom,Scroll或Hotspot),則應(yīng)將AutoPostback屬性設(shè)置為True以啟用交互式(用戶點(diǎn)擊)事件。如果存在上述工具,則會(huì)自動(dòng)激活點(diǎn)擊響應(yīng)。對于交互式事件,圖表將響應(yīng)用戶鼠標(biāo)點(diǎn)擊事件,將點(diǎn)擊發(fā)生的位置信息發(fā)回服務(wù)器,然后服務(wù)器端代碼可以對事件進(jìn)行操作。然后,可以從屬性瀏覽器事件列表中選擇要使用的事件進(jìn)行編碼。 有關(guān)WebChart事件的更多信息,請參閱“事件示例”部分。
4.1 事件示例
如果您希望在WebChart中使用Click事件,例如ClickSeries,請務(wù)必將Chart AutoPostback設(shè)置為true。 可以通過在屬性瀏覽器事件列表中
雙擊所需事件來設(shè)置事件:雙擊列表中的條目可創(chuàng)建代碼內(nèi)事件聲明,例:
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。 可以根據(jù)點(diǎn)擊位置設(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); }
購買TeeChart Pro AciveX正版授權(quán),請點(diǎn)擊“咨詢在線客服”喲!