一个文章录入系统,通过TextBox录入和编辑,为了按用户录入的格式在页面上显示,所以在录入时对用户输入的空格和回车分别替换为"&nbsp;"与"<br>"存入数据库:
......
string str=content;
str=str.Replace("/n","<br>");
str=str.Replace(" ","&nbsp;");
......当用户编辑时再替换回来:
......
string a=content;
str=str.Replace("<br>","/n");
str=str.Replace("&nbsp"," ");
......现在唯一问题是当用户编缉时不是把"<br>"替换为换行,而是输出了"/n",请帮助。

解决方案 »

  1.   

    在包含textbox的td里用这句style="TABLE-LAYOUT: fixed; WORD-BREAK: break-all"就可以了,不用回车会自动换行的,如下
    <table id="Table3" style="TABLE-LAYOUT: fixed" width="100%">
    <colgroup>
    <col>
    <col width="20">
    </colgroup>
    <tr>
    <td style="TABLE-LAYOUT: fixed; WORD-BREAK: break-all"><asp:textbox id="txtRegarding" ReadOnly="True" MaxLength="200" Width="100%" runat="server"></asp:textbox></td>
    <td align="right></td>
    </tr>
    </table>
      

  2.   

    你替换错了,不是/n,而是\n
    还有,我觉得在保存数据的时候不应该进行替换,那些换行符在保存到数据库中的时候,并不会消失,它仍然存在文本里面,在显示的时候,将这些符号替换成<br>之类的就可以了.
    下面是一个页面显示的处理函数.
    /// <summary>
    /// 将无格式的文本处理成有格式的文本
    /// </summary>
    /// <param name="mystr">要处理的文本</param>
    /// <returns>返回带换行等格式的文本</returns>
    public string MyReplace(string mystr)
    {
    if(this.MyisNull(mystr))
    {
    return("&nbsp;");
    }
    else
    {
    mystr = mystr.Replace("\n\r","<br>");
    mystr = mystr.Replace("\r","<br>");
    mystr = mystr.Replace("\t","  ");
    return(mystr);
    }
    }
      

  3.   

    唉,不行啊,简单点问:在TextBox中要输出一个回车效果用什么字符?? 我试了\n和\r都不行。