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