[轉] .NET 3.5中MSChart組件的ImageLocation屬性含義

來源:互聯網
上載者:User

標籤:style   http   io   color   ar   使用   sp   strong   檔案   

在.NET程式/網站中如果要產生統計圖表/圖形,以前可以採用OWC(Office Web Components),如OfficeXP組件OWC10、Office2003組件OWC11。OWC採用COM-DLL方式的調用介面,但主要缺憾 是產生的圖片不夠美觀,不夠“現代”。


現在,隨著.NET 3.5的發布,其引入了新的MSChart組件,當然,已經徹底的.NET化了。

 

一、要使用這個新的圖形組件,需要.NET 3.5 SP1環境。
下載安裝以下檔案,分別是組件安裝包、中文語言套件、VS外掛程式。
MSChart.exe
MSChartLP_chs.exe
MSChart_VisualStudioAddOn.exe
還有官方的文檔,但目前是英文的。

 

二、言歸正傳,現在來搞清楚ImageLocation屬性的意思。
Chart.ImageLocation
名稱空間:System.Web.UI.DataVisualization.Charting
程式集:System.Web.DataVisualization(system.web.datavisualization.dll)
在VS2008中,其預設值為:ChartPic_#SEQ(300,3)
這個好像不太好理解啊:(
好吧,先看幾個關聯屬性吧

1、Chart.RenderType
此屬性決定MSChart產生的圖形以何種方式送到用戶端,有三種:
ImageTag,圖形在服務端儲存為臨時檔案,並將臨時檔案的URL作為HTML中<IMG>標籤的SRC屬性值。而此臨時檔案的URL規則及臨時檔案如何產生可由ImageLocation屬性確定。
BinaryStreaming,不在服務端產生圖形檔案,<IMG>標籤的SRC屬性值將指向另一個負責產生圖形的.aspx頁面。
ImageMap,不顯示實際的圖形,僅建立圖片熱區(image map)。
預設值是ImageTag,就是會在服務端產生臨時檔案。

 

2、Chart.ImageStorageMode
此屬性決定產生圖形的儲存方式,有兩個選項:
UseHttpHandler,預設值,由HTTP處理常式儲存圖形檔案到記憶體或檔案。但產生的檔案用戶端是不能夠直接能過URL訪問到的,<IMG>標籤的SRC屬性值形如:
ChartImg.axd?i=chart_67fdbfec448349e686916b97f1351e90_0.png&amp;g=f96eecccd0334d70b8c9b0702894182b
並不指向服務端一個實體儲存體位置。
UseImageLocation,作為臨時檔案儲存體在服務端指定位置。在用戶端可以通過URL直接擷取到圖片。可進一步指定圖片儲存目錄位置。圖片檔案名稱可以是隨機性的也可以是固定的。

 

3、Chart.ImageType
產生圖形檔案的格式,可以是BMG、JPEG、PNG、EMF。

現在回到Chart.ImageLocation,其實在上面已經提到了它的作用,就是決定圖形臨時檔案的URL規則及臨時檔案如何產生。
(1)、這個屬性只有在Chart.ImageStorageMode=UseImageLocation才有效。
(2)、當Chart.RenderType=ImageTag時,圖形檔案產生後會在服務端儲存。檔案格式和副檔名由Chart.ImageType指定。而檔案名稱則可以是靜態不變或動態變化的。靜態就是使用一個固定名稱,動態則使用一個隨機名稱,可以通過“#”標記來選擇使用GUID或指定數字序列來確定一個唯一的檔案命名。
(3)、預設值ChartPic_#SEQ(300,3)的含義是
(4)、ImageLocation命名舉例,假設Chart.ImageType=Png
屬性值                產生圖形檔案URL              
---------------------------------------------------------------- 
ChartPic_#SEQ(300,3)  ChartPic_000003.png?d155074d-2120-49db-a95c-6a4a61911315           
ChartPic              ChartPic.png?27194803-a8a9-4c3e-81a7-5534a279dbe0  
ChartPic#NOGUIDPARAM  ChartPic.png
(5)、預設值ChartPic_#SEQ(300,3)說明
ChartPic_是首碼,#SEQ是數字序列,300表示最多允許儲存300個檔案,3代表3秒種,表示向事件記錄中寫入警告資訊的時間限制。

 

三、web.config關聯配置項
只有當Chart.ImageStorageMode=UseHttpHandler時,web.config中的配置才會生效。即指定由HTTP處理常式來儲存圖形檔案時,web.config中的配置才會生效。
例如:
<add key="ChartImageHandler" value="storage=file;timeout=20;dir=c:/TempImageFiles/;deleteAfterServicing=false; webDevServerUseConfigSettings=false" />
顯然,其中c:/TempImageFiles/就是HTTP處理常式來儲存圖形檔案的目錄。
deleteAfterServicing,在圖片被瀏覽器成功下功下載後,確定伺服器片是否刪除,預設值為false。
但請注意,如果不指定deleteAfterServicing,圖片是不會被儲存為檔案的,應當只是暫存在記憶體中。
webDevServerUseConfigSettings,當在VS程式開發伺服器中,即運行在完全信任層級(full trust level)環境時,決定產生的圖片是否被儲存在記憶體中。

 

四、注意檔案夾的許可權
只要在服務端產生圖形檔案,無論儲存在哪個目錄下,ASP.NET帳戶都需要擁有該目錄的寫入許可權。

[轉] .NET 3.5中MSChart組件的ImageLocation屬性含義

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.