2011-02-03 28 views
9

Tôi có PrivateMessage-System trong Trang Cộng đồng mới của tôi.Văn bản ASP.Net với LineBreak từ Multi-Line-TextBox để lưu vào cơ sở dữ liệu

Tôi có một hộp văn bản nhiều dòng cho văn bản của thư cá nhân. Tôi lưu văn bản này trong một chuỗi, chuỗi này trong một ntext SQL-Coloumn. Tôi đọc văn bản này từ ntext SQL-Coloum trong một chuỗi và hiển thị nó trong một nhãn.

Khi tôi có 5 dòng với "Enter" -Key trong hộp văn bản nhiều dòng của tôi, các dấu ngắt dòng sẽ biến mất trong nhãn.

Tôi không biết họ đã mất ở đâu và tôi đang làm gì sai. bất kỳ ý tưởng nào?

Trả lời

21

Trước hết, nó có thực sự tiết kiệm các ngắt dòng cho bảng của bạn không? Nếu vậy, nó lưu chúng như thế nào, ví dụ như \ r \ n hoặc CRLF hay cái gì?

Nhãn của bạn xuất ra html, do đó, điều duy nhất sẽ tạo ngắt là thẻ <br />. Vì vậy, bạn cần phải tìm và thay thế bất cứ điều gì được lưu trong cơ sở dữ liệu:

Label1.Text = someDatabaseText.Replace("\r\n", "<br />"); 

Hoặc thậm chí tốt hơn, làm .Replace() trước khi bạn lưu nó vào cơ sở dữ liệu:

someDatabaseField = TextBox1.Text.Replace("\r\n", "<br />"); 
+1

Cảm ơn bạn, tôi không thấy cây trong khu rừng ... – Kovu

+0

Cảm ơn điều này đã giúp tôi quá nhiều :) –

+0

Không biết tại sao, nhưng trong trường hợp của tôi chỉ có mã sau hoạt động: Label1.Text = someDatabaseText.Replace ("\ n", "
"); –

2

này cũng làm việc:

lbl_PostContent.Text = lbl_PostContent.Text.Replace(vbCrLf, "<br />") 
0

Bạn có thể giải quyết vấn đề này bằng CSS. Gán CSS này cho nhãn của bạn:

khoảng trắng: được bọc trước;

Các vấn đề liên quan