如果您的欄位值是放html tag, 那麼可以經由 HtmlEncode=true or false來決定要不要將這段html tag編碼, 您可以參考這裡
在我以前閱讀 ASP.NET 2.0 書籍時, 書裡有提到若要顯示日期但不要時間,可以用以下方法來達成
<asp:BoundField HeaderText="生日" DataField="birthday" HtmlEncode="false" DataFormatString="{0:yyyy/MM/dd}" />
其中 HtmlEncode要設成 false 否則顯示的格式仍會變成
2008/1/1 上午 12:00:00, 而不是 2008/01/01
我記得我當時有練習一下, 的確如此, 所以就養成了習慣, 直到後來閱讀 ASP.NET 3.5 書籍時, 發現書裡居然只教人寫成
<asp:BoundField HeaderText="生日" DataField="birthday" DataFormatString="{0:yyyy/MM/dd}" />
並沒有指定 HtmlEncode=false, 我覺得挺怪的, 於是測試了一下, 欸~~ 可以, 我在想或許我之前記錯了吧, 再回頭寫一下 ASP.NET 2.0 , 發現有沒有指定 HtmlEncode 值都可以正確顯示成
2008/01/01
的格式, 於是, 我後來又都不寫它了
昨天客戶反應, 在測試環境裡OK, 但發佈到正式環境時, 顯示格式變成
2008/1/1 上午 12:00:00
真是怪事, 狀況似乎不止是我記性不好而已, 不同電腦對同一段 code 的解釋卻不同, 我猜可能是我的電腦有裝 service pack 或 .NET Framework 3.5 所致,而客戶正式 server 只裝 .NET Framework 2.0 ,有一些不同吧, 暫時不理它了, 反正以後這類狀況還是加一下好了, 有興趣追究的人再去研究一下囉。