2009/07/10

MS Chart Control 設置

在 ASP.NET 中 MS Chart Control 的設置方法

1. 修改 web.config 檔

在 system.web 的 httpHandlers 區塊加入以下設置:

< path="ChartImg.axd" verb="GET,HEAD" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false">


在 system.webserver 的 handlers 區塊加入以下設置:

< name="ChartImageHandler" precondition="integratedMode" verb="GET,HEAD" path="ChartImg.axd" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35">



2. 暫存目錄路徑設定
在 web.config 中 appSettings 的區塊中加入圖片暫存資料夾的設定
或是直接建立 c:\TempImageFiles\ 的資料夾 (預設暫存夾目錄)

p.s. 若無建立此暫存資料夾,會出現錯誤訊息:
圖表處理常式組態中有無效的暫存目錄 [c:\TempImageFiles\]。

圖表儲存方法 (storage=file|memory|session) 及目錄指定 (dir|url), 有以下方法:

絕對路徑:

< key="ChartImageHandler" value="storage=file;timeout=20;dir=c:\TempImageFiles\;">
< key="ChartImageHandler" value="storage=memory;timeout=20;dir=c:\TempImageFiles\;">
< key="ChartImageHandler" value="storage=session;timeout=20;dir=c:\TempImageFiles\;">


相對路徑:

< key="ChartImageHandler" value="storage=file;timeout=20;url=~/TempImageFiles/;">


3. 複製 System.Web.DataVisualization.dll 至 bin/ 資料夾
安裝的 Chart Control 預設放置路徑:
C:\Program Files\Microsoft Chart Controls\Assemblies
將 System.Web.DataVisualization.dll 複置至 Web 專案的 bin/ 中即可

************ 以上為基本設定 ************

頁面端需加入
< %@ Register Assembly="System.Web.DataVisualization, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" Namespace="System.Web.UI.DataVisualization.Charting" TagPrefix="asp" %>


在程式端則需引入
System.Web.UI.DataVisualization.Charting


參考資源:

2009/05/21

下拉式選單控制項在 ListView 的 InsertItemTemplate 資料繫結問題

下拉式選單控制項在 ListView 中,除了在 InsertItemTemplate 之外的資料繫結都沒問題

若是用 SelectedValue='<%# Bind("DepartmnetId") %>' 的繫結方式,就會產生錯誤訊息

錯誤訊息:
Databinding methods such as Eval(), XPath(), and Bind() can only be used in the context of a databound control
這項已被列為 ASP.NET 的 bug,將於下個發佈版本將會被修復
但在修復之前,可在 ItemInserting 的事件中來指定選擇值,例如:

e.Values("DepartmentId") = CInt(CType(e.Item.FindControl("ddlDepartment"), DropDownList).SelectedValue)

延伸閱讀:
DataBinding on DropDownList's SelectedValue property not working in the InsertItemTemplate of a ListView
ASP.NET 3.5 ListView with DropDownList in InsertItemTemplate

2009/05/12

String.Format 字串格式化

常要做字串格式,利用 String.Format() 可以快速達到效果,不用為了組字串或特殊格式呈現,東少一個連接字串符號,右少一個引號... 若格式改來改去也很麻煩~ String.Format 可省去很多麻煩,彈性又大~~

String.Format 語法:
{index[,length][:formatString]}
e.g. String.Format("{0:d}", Now)
output: 5/13/2009


以下為字串格式化總覽:

標準數字格式化
(C) Currency:  {0:C}
(D) Decimal: {0:D}
(E) Scientific: {0:E}
(F) Fixed point: {0:F}
(G) General: {0:G}
(N) Number: {0:N}
(P) Percent: {0:P}
(R) Round-trip: {0:R}
(X) Hexadecimal: {0:X}

標準日期/時間格式化
(d) Short date:                  {0:d}
(D) Long date: {0:D}
(t) Short time: {0:t}
(T) Long time: {0:T}
(f) Full date/short time: {0:f}
(F) Full date/long time: {0:F}
(g) General date/short time: {0:g}
(G) General date/long time: {0:G}
(M) Month: {0:M}
(R) RFC1123: {0:R}
(s) Sortable: {0:s}
(u) Universal sortable: {0:u} (invariant)
(U) Universal full date/time: {0:U}
(Y) Year: {0:Y}
0 v.s. #
另外 {0:00.00} 或 {0:##.##} 在利用數字格式化也常使用
用 0 就是補 0,而 # 在末數為 0 時就不顯示

e.g.
{00.00} 01.50; 11.30; 01.11; 123.30; 123.33
{##.##} .4; 1.4; 1; 1.33; 11.3; 123.33

多參數字串:
e.g. String.Format("{0}, Now is {1:d}", "Hello", Now)
output: Hello, Now is 5/13/2009


延伸閱讀:
MSDN - String..::.Format Method (String, Object)
ASP.NET设置数据格式与String.Format使用总结
Easily format string output with String.Format
ASP.NET string.Format 格式參數

2009/04/18

[SQL Server 2008] 安裝注意事項

公司最近買了 SQL Server 2008, 終於可以享用最想用的 intellisense 及語法偵錯~ 其他的功能有玩到再陸續分享

如果在 2008/11/11日之前有安裝 visual studio 2005/2008, 且經過 Windows Update 可能會有 MSXML 6 SP2 (KB954459) 的更新, 此更新可能在裝 SQL Server 2008 時造成安裝不成功

先檢查是否有此更新, 如果有請先移除並重新安裝 MSXML 6.0 Parser!

.NET Coding Standard

由 Clint Edmonson (微軟工程師) 釋出的 .NET 程式命名規則: C# 及 VB
下載: Reference Coding Standards

建立大家都認同的命名規則並遵守, 不管在日後維護或是共同開發都有益處

2009/03/10

Web Developer 工具列在 firefox 消失不見!

Web Developer (firefox add-on) 在工作上天天使用的工具,
在某天突然消失不見, 試了很多方法: 停用,重裝, 卻仍然找不回來,

終於在 Web Developer Toolbar Not Showing/Disappeared 這篇發現原因!
的確, 剛好在安裝更新 Skype 之後才出現如此現象! 原來真的是兩個 extension 相沖!

只要把 Skype 的 extension 停用或移除, Web Developer 工具列就回來啦!

2009/02/16

VB.NET 檢查控制項型態

e.g. TypeOf ctl Is Button
檢查控制項 ctl 是否為 Button

2009/02/12

.NET WindowForms 選單快速鍵的建立

MenuStrip 中的選單快速鍵做法
在選單名稱後加入 & 再加快速鍵字母即可

e.g.
工具 (&T) ==> 在視窗將會顯示 "工具 (T)"

若要加入分隔線, 則直接在 Text 輸入值 "-"