翻譯|使用教程|編輯:楊鵬連|2021-07-15 11:59:42.820|閱讀 221 次
概述:TeeChart通過WebChart TeeChart控件為WebForms集成。WebChart可以在標(biāo)準(zhǔn)TeeChart的工具箱中找到。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
TeeChart for .NET是優(yōu)秀的 4.0 WinForm 圖表控件,官方獨家授權(quán)漢化,集功能全面、性能穩(wěn)定版、優(yōu)惠等優(yōu)勢。NET 的 TeeChart for .NET 中文承諾讓您在使用和學(xué)習(xí)上沒有語言障礙,最少可以節(jié)省 30% 的開發(fā)時間。
WebForms
TeeChart通過WebChart TeeChart控件為WebForms集成。WebChart可以在標(biāo)準(zhǔn)TeeChart的工具箱中找到。網(wǎng)絡(luò)安裝。
向窗體添加圖表
圖表編輯器提供了選項來為運行時配置圖表的大多數(shù)方面。設(shè)置保存在WebForm中。關(guān)于圖表編輯器的一般用法,編輯器在WebChart的使用在所有方面都和它在基于Windows窗體的圖表上的使用是一樣的。
WebChart以圖像的形式呈現(xiàn)在WebForm上,默認(rèn)的格式是PNG,但是可以通過Properties Windows中的PictureFormat屬性改變。為了與網(wǎng)頁的兼容性,我們建議使用PNG、JPEG或GIF格式,盡管Internet Explorer瀏覽器也支持位圖。
使用GIF圖像格式
GIF使用256色減少,因此,為了全面彩色復(fù)制,我們建議您使用其他圖像格式之一。
TempChart屬性可以用來選擇臨時圖表在創(chuàng)建后和顯示在瀏覽器頁面之前應(yīng)該如何存儲。有4個可用的設(shè)置:
所有緩存技術(shù)的性能都是相似的,盡管磁盤性能可能會對“File”選項產(chǎn)生積極或消極的影響,因此“File”可能是最快的選項。
文件
如果您希望將臨時文件寫入磁盤,應(yīng)該使用File設(shè)置。默認(rèn)情況下,在安裝TeeChart時,它會創(chuà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)英語機器中創(chuàng)建。teecharnet虛擬文件夾是由TeeChart安裝程序創(chuàng)建的。如果您創(chuàng)建了必要的IIS虛擬共享位置以反映新的注冊表值,您可以更改這些注冊表設(shè)置。
WebChart將文件保存到ShareFolder注冊表項下的文件夾_Chart_tmp下。
臨時文件不會被TeeChart刪除,盡管一個實用程序可能包括為您這樣做自動作為Windows計劃任務(wù),請檢查TeeChart包含與當(dāng)前版本。
Session
Session是臨時文件存儲的設(shè)置,它不會在磁盤上留下任何文件,并且會刪除自己緩存的內(nèi)存文件(請參見Cache和Httphandler選項)。在某些情況下,您可能會發(fā)現(xiàn)它比臨時磁盤文件稍慢。要成功地使用Session變量運行Chart,必須滿足兩個條件:
會話必須為應(yīng)用程序啟用。“啟用”是默認(rèn)行為,可以在項目web中檢查。配置文件:
< sessionStatemode= " InProc "
InProc是默認(rèn)設(shè)置,表示為這個應(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之前保存到會話緩存中的圖表。該腳本將Chart返回給瀏覽器,并將其從緩存中刪除。
緩存緩存選項在設(shè)置中與會話圖緩存選項非常相似。'Cache'是一個實用的選項,因為它使用了屬于ASP的Cache對象。NET WebForm頁面,這樣很容易為大多數(shù)ASP。NET應(yīng)用程序配置,而“會話”容易受到某些Web服務(wù)器的管理限制(例如:管理員出于安全原因選擇禁用會話支持)。
緩存選項需要使用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之前保存到頁面緩存中的圖表。該腳本將Chart返回給瀏覽器,并將其從緩存中刪除。
HttphandlerHttphandler選項使用一個內(nèi)部的TeeChart (WebChart)生成器來恢復(fù)頁面的Chart圖像。該選項不生成臨時文件,也不需要額外的aspx文件來恢復(fù)圖表(就像使用Session和Cache選項一樣)。這個選項需要對網(wǎng)頁進(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)圖表中沒有WebChart工具時,AutoPostback屬性為True)
加載事件和運行時交互事件,響應(yīng)用戶在圖表上的鼠標(biāo)點擊可以與TeeChart的WebChart一起使用。使用像“AfterDraw”這樣的油漆事件不需要采取特殊的操作,你可以從屬性瀏覽器的事件列表中選擇圖表事件。如果圖表中沒有TeeChart WebChart工具,如縮放、滾動或熱點,則應(yīng)將AutoPostback屬性設(shè)置為True,以啟用交互式(用戶單擊)事件。如果出現(xiàn)上述工具,則自動激活單擊響應(yīng)。對于交互式事件,圖表將響應(yīng)用戶的鼠標(biāo)點擊事件,將點擊發(fā)生在哪里的信息發(fā)送回服務(wù)器,這樣您的服務(wù)器端代碼就可以對事件進(jìn)行操作。然后可以從屬性瀏覽器事件列表中選擇要使用的事件進(jìn)行編碼。
Event的例子
如果您希望在您的WebChart中使用點擊事件,如ClickSeries,請確保將圖表自動回傳設(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輸出文本。
private void WebChart1_ClickSeries(object sender, Steema.TeeChart.Series s, int valueIndex, System.EventArgs e) { xVal=s.CalcXPos(valueIndex); yVal=s.CalcYPos(valueIndex); }
免費腳本ASP應(yīng)用程序
在WebForm中使用WebChart的另一種方法是在標(biāo)準(zhǔn)的asp (aspx)頁面中使用TeeChart作為一個腳本化的“不可見”控件。. net的TeeChart附帶了一個演示此技術(shù)的實例。你可以找到它包含在TeeChart的ASP。NET演示項目,示例名為“與圖表交互\圖表作為圖像”演示文件夾下的“系列類型作為圖像”
TeeChart可以通過內(nèi)部的Chart類在ASP中自由編寫腳本,但是為了利用TeeChart事件,我們建議使用TChart Windows窗體組件或WebChart控件
將圖表添加到腳本中3.按照這里突出顯示的代碼步驟和ASPStreams示例中的步驟來設(shè)置你的項目。
Process 流程
客戶端瀏覽器頁面(SeriesTypes.aspx)包含一個圖像,其IMG鏈接是aspx服務(wù)器腳本(ShowSeries.aspx)。客戶端頁面上的提交按鈕使用參數(shù)化serverChart處理所需的變量調(diào)用服務(wù)器腳本。按鈕將變量作為參數(shù)的一部分發(fā)送,以設(shè)置客戶端頁面圖表圖像的imageURL,因此返回一個基于處理參數(shù)的動態(tài)圖表。
編碼與TeeChart
代碼與TeeChart服務(wù)器端添加一個使用TeeChart腳本頁面:eg
private void Page_Load(object sender, System.EventArgs e) { tChart=new TChart(); /* ...add Series and data, etc ... */ }
檢索圖表的關(guān)鍵代碼元素
圖表檢索的關(guān)鍵代碼組件有:1. 客戶“獲取”指令。這可以通過一個提交按鈕或其他方式,如組合框和“獲取”圖表從服務(wù)器基于客戶端參數(shù)。對圖表的請求可以發(fā)送為“傳統(tǒng)的獲取url行,其中參數(shù)作為一個url行傳遞,或者可以通過ASP。NET的“在頁面之間傳遞服務(wù)器控件值”(請參閱微軟關(guān)于這個主題的幫助主題以獲得更多細(xì)節(jié))。調(diào)用服務(wù)器腳本的編碼將在網(wǎng)頁后面的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ù)器腳本從客戶機接收GET請求并運行其Page_Load事件。在這種情況下,圖表可能被創(chuàng)建,接收到的參數(shù)可能被用來定義圖表是如何被填充的。然后將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(); }
添加事件
通過在圖表創(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)建時執(zhí)行,在這種情況下,相關(guān)的消息將包括在圖表畫布上,因為圖表被渲染成圖像。如果你想在客戶端頁面上使用基于用戶鼠標(biāo)點擊的交互事件,我們建議你在WebForm上使用WebChart組件。
安全問題. net通過安裝程序安裝的默認(rèn)TeeChart創(chuàng)建文件夾和IIS虛擬文件夾,這些文件夾足以訪問ASP。TeeChart中包含的NET示例。WebForm應(yīng)用程序假定IIS中激活了會話支持來移動臨時圖表信息。示例項目可以在Visual Studio中修改。NET使用“文件”作為媒介來臨時存儲圖表。在Windows 2000的測試中,工作得令人滿意。在Windows 2003中,默認(rèn)安裝的附加安全限制限制了使用默認(rèn)的'_chart_temp'文件夾的可能性(temp文件夾的名稱和位置是可配置的)。在Win2003服務(wù)器中,系統(tǒng)管理員必須修改安全權(quán)限,以允許ASP將臨時文件保存到磁盤。NET應(yīng)用程序的問題。
WebChart工具WebChart Tools可以從編輯器工具面板中添加到WebChart。許多非WebChart特定的工具可以用于WebCharts,除了那些響應(yīng)鼠標(biāo)移動的工具(除了下面提到的WebChart工具本身)。下面描述的所有工具技術(shù)都包含在TeeChart WebChart演示中作為實時示例。
HotspotTool
這個工具最簡單的形式是激活一個數(shù)據(jù)點鼠標(biāo)經(jīng)過標(biāo)簽,當(dāng)鼠標(biāo)經(jīng)過一個點時顯示出來。Hotspot工具也可用于Winform圖表,但操作的性質(zhì)不同,如這里描述的WebChart。WebChart熱點工具生成與每個數(shù)據(jù)點相關(guān)聯(lián)的地圖區(qū)域。地圖動作可以從以下選項中選擇。-腳本-運行自定義Javascript當(dāng)一個數(shù)據(jù)點被單擊
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方法來操作您的調(diào)用,以顯示相關(guān)的數(shù)據(jù)表。
ScrollTool
滾動工具在WebChart的底部添加了一個滾動條。您可以設(shè)置圖表的可見部分大小和起始位置。圖表也是可拖動的,盡管該功能可能被取消。滾動工具可以與熱點工具結(jié)合使用。
使用編輯器添加滾動工具自動將圖表設(shè)置為2D,并移動較低的軸以允許滾動條的空間。滾動條在設(shè)計時不可見。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事件,請參閱window onload事件部分。
ZoomTool要使用ZoomTool,你應(yīng)該在你的頁面代碼中添加以下方法。
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);
在沒有任何鼠標(biāo)x或y位移的情況下單擊/拖動圖表將導(dǎo)致單擊返回到服務(wù)器,而不是縮放。如果需要使用window onload事件,請參閱window onload事件部分。
窗口onload事件<script language=javascript> function windowOnload() { window.status = new Date().getTime(); } </script>
現(xiàn)的的的TeeChart為.NET已加入在線訂購,現(xiàn)在搶購可立享優(yōu)惠!
如果你看到了可愛的動物群,歡迎加入展示區(qū)QQ:740060302
關(guān)注慧聚IT微信公眾號???,了解產(chǎn)品的最新動態(tài)和最新資訊。
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自: