使用 Google 搜尋本站文章:
首頁 | CodeCharge 討論板 | 部落格 | ASP.NET 電子書 | 所有文章 | 相簿 | News | 網站導讀 | 聯絡 Allen | 訂閱 RSS
Microsoft MVP
since 2004
 


GridView 裡的 HtmlEncode

By Allen Kuo, 建立日期:2008/11/12 08:18
GridView 裡的HtmlEncode屬性值用來決定要不要將欄位值編碼...
    加入書籤: 收進你的MyShare個人書籤

如果您的欄位值是放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 ,有一些不同吧, 暫時不理它了, 反正以後這類狀況還是加一下好了, 有興趣追究的人再去研究一下囉。

Copyright © AllenKuo.com , 2000 - 2009