转: TextBox中的空格与换行问题

在开发的过程中,发现如果我们利用TextBox编辑文字,即使你打了好多空格,分了好多段落,插入数据库之后,都不会认你的格式,我们再从数据库中读取出来的文字根本就没格式。那如何让在TextBox中的格式保留在数据库当中呢?我开始以为用Server.HtmlEncode可以,却没有达到目的,通过查资料,研究了好久才勉强能出一些效果,具体代码如下:
.........
string str="";
str=this.txtDescription.Text;  //把TextBox中的内容先赋给str,再做处理
str=str.Replace("\r\n", "<br>");
str = str .Replace("\n", "<br>");
str = str .Replace(" ", "&nbsp;");

//将 content 放入数据库保存
string content=Server.HtmlEncode(str); //这里的html编码主要是将'<' 与 '>' 编码成代号符
.......
这样在数据库中就是以HTML文本格式的数据了,用Server.HtmlDecode在Label中就可以显示你在TextBox中编排的格式。但如你把数据再放回TextBox中,同理你就得重新转换一次,即:
string str1="";
str1=sdr["DepartmentDescription"].ToString();
 str1=str1.Replace("&lt;br&gt;", "\r\n"); //在数据库中"<"是"&lt;" ">"是"&gt;",
str1=str1.Replace("&lt;br&gt;", "\n");
str1=str1.Replace("&amp;nbsp;", " ");   //&amp;表示的是&

//由于以上转化可以直接将代号符转化为textbox识别符,故不用再解码。
this.txtDescription.Text=str1;   //在TextBox中显示
......

那就这样OK了!
但这个方法还有一些缺陷,还请高手赐教!
据说这个问题用CSS也能解决,不过我没有试过

原文地址:https://www.cnblogs.com/wantingqiang/p/1434840.html