2011年1月28日 星期五

asp.net_textbox→SQL→Label(換行符號處理)

在製作表單的時候常常會有一種流程:

1. 使用者利用textbox輸入文字。

2. 按下送出後,存入資料庫中。

3. 利用label秀出內容,讓其他使用者瀏覽。

這樣的情境非常多,幾乎每一個案子都會需要這種簡單的表單功能,

而其中通常會有某些類似"備註"的欄位,讓使用者可以任意的輸入多行文字。

所以理想狀況下,我們必須要忠實呈現輸入的內容,

如果我們在顯示內容時還是使用textbox,則textbox會幫你處理換行的問題,

但如果使用label來顯示內容就會發現,該內容並沒有依照預期的換行顯示。

所以該怎麼做?可以分成兩個部份來說明:

1. 存入MS SQL裡面的換行符號為:CHAR(10)、CHAR(13),

可以利用

SELECT * FROM Table WHERE UserMessage LIKE '%' + CHAR(10) + '%'
來確定是否有換行符號的寫入。

2. 想要在Label裡面出現換行的效果,必須要使用HTML的語法,也就是<br/>。
所以必須要利用取代的方式來改變從資料庫讀取出來的內容:

ShowString.Replace("\r\n", "<br />");

所以,如果你想要在資料庫裡面處理換行就去搜尋CHAR(10),
如果想要在網頁上面換行就搜尋<br/>,
如果想要在程式裡面換行就是搜尋\r\n(C#),
如果與法使用VB就搜尋vbCrLf。

最後附上換行顯示結果:

沒有留言:

張貼留言