在开发的过程中,发现如果我们利用TextBox编辑文字,即使你打了好多空格,分了好多段落,插入数据库之后,都不会认你的格式,我们再从数据库中读取出来的文字根本就没格式。那如何让在TextBox中的格式保留在数据库当中呢?我开始以为用Server.HtmlEncode可以,却没有达到目的,通过查资料,研究了好久才勉强能出一些效果,具体代码如下:
.........
string str="";
str=this.txtDescription.Text; //把TextBox中的内容先赋给str,再做处理
str=str.Replace("\r\n", "
");
str = str .Replace("\n", "
");
str = str .Replace(" ", " ");
d.DepartmentDescription=Server.HtmlEncode(str);
.......
这样在数据库中就是以HTML文本格式的数据了,用Server.HtmlDecode在Label中就可以显示你在TextBox中编排的格式。但如你把数据再放回TextBox中,同理你就得重新转换一次,即:
string str1="";
str1=sdr["DepartmentDescription"].ToString();
str1=str1.Replace("<br>", "\r\n"); //在数据库中""是">",
str1=str1.Replace("<br>", "\n");
str1=str1.Replace(" ", " "); //&表示的是&
this.txtDescription.Text=Server.HtmlDecode(str1); //在TextBox中显示
......
那就这样OK了!
但这个方法还有一些缺陷,还请高手赐教!
据说这个问题用CSS也能解决,不过我没有试过