這個問題,應(yīng)該算是很簡單的問題,可說實在的,折騰了2個小時的時候,后面整出來的時候,真坑爹呢?,F(xiàn)在把這個過程給大家,希望可以給大家一個提醒。
一、VB.NET ASP.NET問題還原
當我對一條數(shù)據(jù)進行編輯的時候,我們進入了編輯頁面,比如下面頁中的Work Araound字段
我對這些字段填了一些內(nèi)容。我通過回車,分成了一段一段,可是,當我們保存這個編輯頁面的時候,結(jié)果如下:
可以很清楚看到顯示出來的值沒有分段。顯示效果很不友好。
解決方案:
關(guān)鍵字:vbCrLf(因為項目需要,所以用的是VB.NET 以及VS2005,讓大家見笑了),我通過下面的代碼獲取到每當你回車的時候,然后我就先獲取到回車符,然后再轉(zhuǎn)行成“|”,這樣一并存入數(shù)據(jù)庫。(其實,這里有一個缺點,就是“|” 成了一個不能用的一個字符了。)
復(fù)制代碼 代碼如下:
Dim strTextArea As String = Replace(TextArea1.Value, vbCrLf, "|") 這句話等價于下面的:Dim strTextArea As String = TextArea1.Value.Replace(vbCrLf, "|")
接著,當我們在從數(shù)據(jù)庫讀取出來的時候,我們在用下面的這個替換:
復(fù)制代碼 代碼如下:
Label1.Text = strTextArea.Replace("|", "br>")
然后,到這里就到了基本OK了。在中間的時候繞了一下,我們貌似得到了期望的結(jié)果。
其實,這里面還有一個問題,就是當每一條都很長的時候,就會出現(xiàn)下面的bug。看到?jīng)],超出的字段沒有進行換行,很難看。
這個我們需要在當前元素的父級元素加一個樣式就OK啦,就是word-break:break-all,然后就會自動換行了。
復(fù)制代碼 代碼如下:
TD style="WIDTH: 451px; word-break:break-all">
textarea id="txtReleaseNoteComment" cols="51" rows="10" runat="server" visible="false">/textarea>
asp:Label ID="lbl_releaseNotedComment" runat="server" Text="" Visible="False" width="450px">/asp:Label>
/TD>
顯示的結(jié)果如下:
點評:感覺,繞了一個彎似的??墒牵拖冗@么用著吧,反正先提交再說!
二、C# ASP.NET的情況呢
那處理就簡單多了呢。環(huán)境:VS 2010
測試代碼:
復(fù)制代碼 代碼如下:
asp:TextBox ID="TextBox1" runat="server" Height="105px" TextMode="MultiLine"
Width="320px">/asp:TextBox>
asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />
br />
asp:Label ID="Label1" runat="server" Text="Label">/asp:Label>
然后,我們在Button那設(shè)置一個斷點,
看上面,我沒有設(shè)置什么,就自動的識別了 換行符號:\r\n,那接下來就很好處理了:
復(fù)制代碼 代碼如下:
protected void Button1_Click(object sender, EventArgs e)
{
Label1.Text = TextBox1.Text.Replace("\r\n", "br>");
}
就OK啦。
就可以了。
三、Winform
那在Winform中呢,那就更簡單了,你都不需要處理,把的值直接賦值到textbox就OK啦。
復(fù)制代碼 代碼如下:
label1.Text = textBox1.Text;
誒。你不得不感慨技術(shù)的先進哦。