翻譯|使用教程|編輯:楊鵬連|2021-07-15 11:59:42.820|閱讀 221 次
概述:TeeChart通過(guò)WebChart TeeChart控件為WebForms集成。WebChart可以在標(biāo)準(zhǔn)TeeChart的工具箱中找到。
# 界面/圖表報(bào)表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
TeeChart for .NET是優(yōu)秀的 4.0 WinForm 圖表控件,官方獨(dú)家授權(quán)漢化,集功能全面、性能穩(wěn)定版、優(yōu)惠等優(yōu)勢(shì)。NET 的 TeeChart for .NET 中文承諾讓您在使用和學(xué)習(xí)上沒(méi)有語(yǔ)言障礙,最少可以節(jié)省 30% 的開(kāi)發(fā)時(shí)間。
點(diǎn)擊立即下載最新版TeeChart for .NET
WebForms
TeeChart通過(guò)WebChart TeeChart控件為WebForms集成。WebChart可以在標(biāo)準(zhǔn)TeeChart的工具箱中找到。網(wǎng)絡(luò)安裝。
向窗體添加圖表
圖表編輯器提供了選項(xiàng)來(lái)為運(yùn)行時(shí)配置圖表的大多數(shù)方面。設(shè)置保存在WebForm中。關(guān)于圖表編輯器的一般用法,編輯器在WebChart的使用在所有方面都和它在基于Windows窗體的圖表上的使用是一樣的。
WebChart以圖像的形式呈現(xiàn)在WebForm上,默認(rèn)的格式是PNG,但是可以通過(guò)Properties Windows中的PictureFormat屬性改變。為了與網(wǎng)頁(yè)的兼容性,我們建議使用PNG、JPEG或GIF格式,盡管Internet Explorer瀏覽器也支持位圖。
使用GIF圖像格式
GIF使用256色減少,因此,為了全面彩色復(fù)制,我們建議您使用其他圖像格式之一。
TempChart屬性可以用來(lái)選擇臨時(shí)圖表在創(chuàng)建后和顯示在瀏覽器頁(yè)面之前應(yīng)該如何存儲(chǔ)。有4個(gè)可用的設(shè)置:
所有緩存技術(shù)的性能都是相似的,盡管磁盤性能可能會(huì)對(duì)“File”選項(xiàng)產(chǎn)生積極或消極的影響,因此“File”可能是最快的選項(xiàng)。
文件
如果您希望將臨時(shí)文件寫入磁盤,應(yīng)該使用File設(shè)置。默認(rèn)情況下,在安裝TeeChart時(shí),它會(huì)創(chuàng)建帶有臨時(shí)文件位置和等效虛擬文件夾名稱的注冊(cè)表項(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)英語(yǔ)機(jī)器中創(chuàng)建。teecharnet虛擬文件夾是由TeeChart安裝程序創(chuàng)建的。如果您創(chuàng)建了必要的IIS虛擬共享位置以反映新的注冊(cè)表值,您可以更改這些注冊(cè)表設(shè)置。
WebChart將文件保存到ShareFolder注冊(cè)表項(xiàng)下的文件夾_Chart_tmp下。
臨時(shí)文件不會(huì)被TeeChart刪除,盡管一個(gè)實(shí)用程序可能包括為您這樣做自動(dòng)作為Windows計(jì)劃任務(wù),請(qǐng)檢查TeeChart包含與當(dāng)前版本。
Session
Session是臨時(shí)文件存儲(chǔ)的設(shè)置,它不會(huì)在磁盤上留下任何文件,并且會(huì)刪除自己緩存的內(nèi)存文件(請(qǐng)參見(jiàn)Cache和Httphandler選項(xiàng))。在某些情況下,您可能會(huì)發(fā)現(xiàn)它比臨時(shí)磁盤文件稍慢。要成功地使用Session變量運(yùn)行Chart,必須滿足兩個(gè)條件:
會(huì)話必須為應(yīng)用程序啟用。“啟用”是默認(rèn)行為,可以在項(xiàng)目web中檢查。配置文件:
< sessionStatemode= " InProc "
InProc是默認(rèn)設(shè)置,表示為這個(gè)應(yīng)用程序啟用了Session。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ì)話緩存中的圖表。該腳本將Chart返回給瀏覽器,并將其從緩存中刪除。
緩存緩存選項(xiàng)在設(shè)置中與會(huì)話圖緩存選項(xiàng)非常相似。'Cache'是一個(gè)實(shí)用的選項(xiàng),因?yàn)樗褂昧藢儆贏SP的Cache對(duì)象。NET WebForm頁(yè)面,這樣很容易為大多數(shù)ASP。NET應(yīng)用程序配置,而“會(huì)話”容易受到某些Web服務(wù)器的管理限制(例如:管理員出于安全原因選擇禁用會(huì)話支持)。
緩存選項(xiàng)需要使用GetChart。aspx文件。
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ù)WebChart之前保存到頁(yè)面緩存中的圖表。該腳本將Chart返回給瀏覽器,并將其從緩存中刪除。
HttphandlerHttphandler選項(xiàng)使用一個(gè)內(nèi)部的TeeChart (WebChart)生成器來(lái)恢復(fù)頁(yè)面的Chart圖像。該選項(xiàng)不生成臨時(shí)文件,也不需要額外的aspx文件來(lái)恢復(fù)圖表(就像使用Session和Cache選項(xiàng)一樣)。這個(gè)選項(xiàng)需要對(duì)網(wǎng)頁(yè)進(jìn)行一次修改。配置文件:
在網(wǎng)絡(luò)之間的任何地方。配置 <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)圖表中沒(méi)有WebChart工具時(shí),AutoPostback屬性為True)
加載事件和運(yùn)行時(shí)交互事件,響應(yīng)用戶在圖表上的鼠標(biāo)點(diǎn)擊可以與TeeChart的WebChart一起使用。使用像“AfterDraw”這樣的油漆事件不需要采取特殊的操作,你可以從屬性瀏覽器的事件列表中選擇圖表事件。如果圖表中沒(méi)有TeeChart WebChart工具,如縮放、滾動(dòng)或熱點(diǎn),則應(yīng)將AutoPostback屬性設(shè)置為True,以啟用交互式(用戶單擊)事件。如果出現(xiàn)上述工具,則自動(dòng)激活單擊響應(yīng)。對(duì)于交互式事件,圖表將響應(yīng)用戶的鼠標(biāo)點(diǎn)擊事件,將點(diǎn)擊發(fā)生在哪里的信息發(fā)送回服務(wù)器,這樣您的服務(wù)器端代碼就可以對(duì)事件進(jìn)行操作。然后可以從屬性瀏覽器事件列表中選擇要使用的事件進(jìn)行編碼。
Event的例子
如果您希望在您的WebChart中使用點(diǎn)擊事件,如ClickSeries,請(qǐng)確保將圖表自動(dòng)回傳設(shè)置為true。
事件可以通過(guò)在屬性瀏覽器事件列表中雙擊所需的事件來(lái)設(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輸出文本。
private void WebChart1_ClickSeries(object sender, Steema.TeeChart.Series s, int valueIndex, System.EventArgs e) { xVal=s.CalcXPos(valueIndex); yVal=s.CalcYPos(valueIndex); }
免費(fèi)腳本ASP應(yīng)用程序
在WebForm中使用WebChart的另一種方法是在標(biāo)準(zhǔn)的asp (aspx)頁(yè)面中使用TeeChart作為一個(gè)腳本化的“不可見(jiàn)”控件。. net的TeeChart附帶了一個(gè)演示此技術(shù)的實(shí)例。你可以找到它包含在TeeChart的ASP。NET演示項(xiàng)目,示例名為“與圖表交互\圖表作為圖像”演示文件夾下的“系列類型作為圖像”
TeeChart可以通過(guò)內(nèi)部的Chart類在ASP中自由編寫腳本,但是為了利用TeeChart事件,我們建議使用TChart Windows窗體組件或WebChart控件
將圖表添加到腳本中3.按照這里突出顯示的代碼步驟和ASPStreams示例中的步驟來(lái)設(shè)置你的項(xiàng)目。
Process 流程
客戶端瀏覽器頁(yè)面(SeriesTypes.aspx)包含一個(gè)圖像,其IMG鏈接是aspx服務(wù)器腳本(ShowSeries.aspx)。客戶端頁(yè)面上的提交按鈕使用參數(shù)化serverChart處理所需的變量調(diào)用服務(wù)器腳本。按鈕將變量作為參數(shù)的一部分發(fā)送,以設(shè)置客戶端頁(yè)面圖表圖像的imageURL,因此返回一個(gè)基于處理參數(shù)的動(dòng)態(tài)圖表。
編碼與TeeChart
代碼與TeeChart服務(wù)器端添加一個(gè)使用TeeChart腳本頁(yè)面:eg
private void Page_Load(object sender, System.EventArgs e) { tChart=new TChart(); /* ...add Series and data, etc ... */ }
檢索圖表的關(guān)鍵代碼元素
圖表檢索的關(guān)鍵代碼組件有:1. 客戶“獲取”指令。這可以通過(guò)一個(gè)提交按鈕或其他方式,如組合框和“獲取”圖表從服務(wù)器基于客戶端參數(shù)。對(duì)圖表的請(qǐng)求可以發(fā)送為“傳統(tǒng)的獲取url行,其中參數(shù)作為一個(gè)url行傳遞,或者可以通過(guò)ASP。NET的“在頁(yè)面之間傳遞服務(wù)器控件值”(請(qǐng)參閱微軟關(guān)于這個(gè)主題的幫助主題以獲得更多細(xì)節(jié))。調(diào)用服務(wù)器腳本的編碼將在網(wǎng)頁(yè)后面的WebForms Code中進(jìn)行。
例子private void sendInfo() { seriesType=DropDownList1.Items[DropDownList1.SelectedIndex].ToString(); viewType=CheckBox1.Checked.ToString(); Image1.ImageUrl="http://"+webServer /*use webserver variable for server*/ +"/TeeChartForNET/ASPStream/ProcessChart.aspx?seriestype=" +seriesType+"&view="+viewType; }
2. 服務(wù)器腳本從客戶機(jī)接收GET請(qǐng)求并運(yùn)行其Page_Load事件。在這種情況下,圖表可能被創(chuàng)建,接收到的參數(shù)可能被用來(lái)定義圖表是如何被填充的。然后將Chart呈現(xiàn)為圖像,并作為流返回給客戶端。
例子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(); }
添加事件
通過(guò)在圖表創(chuàng)建之后添加事件,可以為自由腳本的TeeChart ASP應(yīng)用程序添加圖表創(chuà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事件代碼將在圖表創(chuàng)建時(shí)執(zhí)行,在這種情況下,相關(guān)的消息將包括在圖表畫布上,因?yàn)閳D表被渲染成圖像。如果你想在客戶端頁(yè)面上使用基于用戶鼠標(biāo)點(diǎn)擊的交互事件,我們建議你在WebForm上使用WebChart組件。
安全問(wèn)題. net通過(guò)安裝程序安裝的默認(rèn)TeeChart創(chuàng)建文件夾和IIS虛擬文件夾,這些文件夾足以訪問(wèn)ASP。TeeChart中包含的NET示例。WebForm應(yīng)用程序假定IIS中激活了會(huì)話支持來(lái)移動(dòng)臨時(shí)圖表信息。示例項(xiàng)目可以在Visual Studio中修改。NET使用“文件”作為媒介來(lái)臨時(shí)存儲(chǔ)圖表。在Windows 2000的測(cè)試中,工作得令人滿意。在Windows 2003中,默認(rèn)安裝的附加安全限制限制了使用默認(rèn)的'_chart_temp'文件夾的可能性(temp文件夾的名稱和位置是可配置的)。在Win2003服務(wù)器中,系統(tǒng)管理員必須修改安全權(quán)限,以允許ASP將臨時(shí)文件保存到磁盤。NET應(yīng)用程序的問(wèn)題。
WebChart工具WebChart Tools可以從編輯器工具面板中添加到WebChart。許多非WebChart特定的工具可以用于WebCharts,除了那些響應(yīng)鼠標(biāo)移動(dòng)的工具(除了下面提到的WebChart工具本身)。下面描述的所有工具技術(shù)都包含在TeeChart WebChart演示中作為實(shí)時(shí)示例。
HotspotTool
這個(gè)工具最簡(jiǎn)單的形式是激活一個(gè)數(shù)據(jù)點(diǎn)鼠標(biāo)經(jīng)過(guò)標(biāo)簽,當(dāng)鼠標(biāo)經(jīng)過(guò)一個(gè)點(diǎn)時(shí)顯示出來(lái)。Hotspot工具也可用于Winform圖表,但操作的性質(zhì)不同,如這里描述的WebChart。WebChart熱點(diǎn)工具生成與每個(gè)數(shù)據(jù)點(diǎn)相關(guān)聯(lián)的地圖區(qū)域。地圖動(dòng)作可以從以下選項(xiàng)中選擇。-腳本-運(yùn)行自定義Javascript當(dāng)一個(gè)數(shù)據(jù)點(diǎn)被單擊
MarkhotspotTool.Style = Steema.TeeChart.Styles.MarksStyles.LabelPercentTotal;
URL//init code.... Steema.TeeChart.Tools.SeriesHotspot hotspotTool = ((Steema.TeeChart.Tools.SeriesHotspot)WebChart1.Chart.Tools[0]); hotspotTool.GetHTMLMap += new Steema.TeeChart.Tools.SeriesHotspotEventHandler(hotspotTool_GetHTMLMap); //event code: private void hotspotTool_GetHTMLMap(Steema.TeeChart.Tools.SeriesHotspot sender, Steema.TeeChart.Tools.SeriesHotspotEventArgs e) { if (CheckBox1.Checked) //open new window? e.PointPolygon.Attributes="target='_blank'"; else e.PointPolygon.Attributes="target='_self'"; tab if (e.Series==WebChart1.Chart.Series[0]) e.PointPolygon.HREF="http://" + TextBox1.Text; //set URL according to textbox text + TextBox1.Text; //set URL according to textbox text if (e.Series==WebChart1.Chart.Series[1]) e.PointPolygon.HREF="http://" + TextBox2.Text; if (e.Series==WebChart1.Chart.Series[2]) e.PointPolygon.HREF="http://" + TextBox3.Text; + TextBox3.Text; if (e.Series==WebChart1.Chart.Series[3]) e.PointPolygon.HREF="http://" + TextBox4.Text; }腳本
protected void Page_Load(object sender, System.EventArgs e) { //initialization Chart ch1 = WebChart1.Chart; Steema.TeeChart.Themes.ColorPalettes.ApplyPalette(ch1, 9); Steema.TeeChart.Tools.SeriesHotspot hotspot1 = new Steema.TeeChart.Tools.SeriesHotspot(); ch1.Legend.Visible = false; ch1.Tools.Add(hotspot1); hotspot1.MapAction = Steema.TeeChart.Styles.MapAction.Script; hotspot1.GetHTMLMap += new Steema.TeeChart.Tools.SeriesHotspotEventHandler(hotspot1_GetHTMLMap); //....etc... more init code } private void hotspot1_GetHTMLMap(Steema.TeeChart.Tools.SeriesHotspot sender, Steema.TeeChart.Tools.SeriesHotspotEventArgs e) { //This example calls a Bar Series but e.Series and e.PointPolygon.ValueIndex could be sent //as arguments for a drilldown query. //The prepared HelperScriptAnnotation text accepts your text as a variable for the Annotation //In the following case it calls an aspx script to generate and return a Chart as an image e.PointPolygon.Attributes=String.Format(Texts.HelperScriptAnnotation, "<IMG SRC=ShowSeries.aspx?seriestype=Bar&view=False&width=100&height=80>"); //The annotation could, alternatively, present text in the mouseover hint, eg.: //e.PointPolygon.Attributes=String.Format(Steema.TeeChart.Texts.HelperScriptAnnotation,"hello world."); }
在上面的例子中使用的HelperScriptAnnotation是:
HelperScriptAnnotation = " onmouseover = \ " ShowAnnotation(“{0}”);\“onmouseout = \”ShowAnnotation(“);\“”;
如果要添加自己的輸出,可以在這里將調(diào)用替換為自己的代碼。string myProcess = ="onmouseover=\"ShowAssociatedDataTable('{0}'); e.PointPolygon.Attributes = String.Format (myProcess e.PointPolygon.ValueIndex.ToString ());
因此,您將使用ShowAssociatedDataTable方法來(lái)操作您的調(diào)用,以顯示相關(guān)的數(shù)據(jù)表。
ScrollTool
滾動(dòng)工具在WebChart的底部添加了一個(gè)滾動(dòng)條。您可以設(shè)置圖表的可見(jiàn)部分大小和起始位置。圖表也是可拖動(dòng)的,盡管該功能可能被取消。滾動(dòng)工具可以與熱點(diǎn)工具結(jié)合使用。
使用編輯器添加滾動(dòng)工具自動(dòng)將圖表設(shè)置為2D,并移動(dòng)較低的軸以允許滾動(dòng)條的空間。滾動(dòng)條在設(shè)計(jì)時(shí)不可見(jiàn)。Steema.TeeChart.Tools.ScrollTool scrollTool = ((Steema.TeeChart.Tools.ScrollTool)WebChart1.Chart.Tools[0]); scrollTool.StartPosition = 30; scrollTool.SegmentViewUnits = Steema.TeeChart.Tools.ScrollToolViewUnit.percent; scrollTool.ViewSegmentSize = 20;
如果需要使用window onload事件,請(qǐng)參閱window onload事件部分。
ZoomTool要使用ZoomTool,你應(yīng)該在你的頁(yè)面代碼中添加以下方法。
private void CheckZoom(WebChart wChart) { ArrayList zoomedState=(ArrayList)Session[wChart.ID+"Zoomed"]; zoomedState=((Steema.TeeChart.Tools.ZoomTool)wChart.Chart.Tools[0]).SetCurrentZoom(Request, zoomedState); if (zoomedState==null) Session.Remove(wChart.ID+"Zoomed"); else Session.Add(wChart.ID+"Zoomed",zoomedState); }or Page.Cache:
private void CheckZoom(WebChart wChart) { ArrayList zoomedState = (ArrayList)Page.Cache[wChart.ID + "Zoomed"]; zoomedState = ((Steema.TeeChart.Tools.ZoomTool)wChart.Chart.Tools[0]).SetCurrentZoom(Request, zoomedState); if (zoomedState == null) Page.Cache.Remove(wChart.ID + "Zoomed"); else Page.Cache.Add(wChart.ID + "Zoomed", zoomedState); }在Page_Load方法的末尾調(diào)用該方法,傳遞要縮放的Chart的名稱。
CheckZoom (WebChart1);
在沒(méi)有任何鼠標(biāo)x或y位移的情況下單擊/拖動(dòng)圖表將導(dǎo)致單擊返回到服務(wù)器,而不是縮放。如果需要使用window onload事件,請(qǐng)參閱window onload事件部分。
窗口onload事件<script language=javascript> function windowOnload() { window.status = new Date().getTime(); } </script>
現(xiàn)的的的TeeChart為.NET已加入在線訂購(gòu),現(xiàn)在搶購(gòu)可立享優(yōu)惠!
如果你看到了可愛(ài)的動(dòng)物群,歡迎加入展示區(qū)QQ:740060302
關(guān)注慧聚IT微信公眾號(hào)???,了解產(chǎn)品的最新動(dòng)態(tài)和最新資訊。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請(qǐng)務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請(qǐng)郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自: