在文本框中替换<br/>

时间:2011-05-15 16:48:44

标签: c# asp.net textbox datalist

我在Datalist中有一个文本框,其中包含我从数据库中获取的文本。该文本中有很多<br>我希望换行而不是<br>,这就是它的样子:

((TextBox)(EditProductList.Items[0].FindControl("txtEditDescription"))).Text.Replace("<br>", "\r\n");

 <asp:DataList ID="EditProductList" runat="server">
   <ItemTemplate>
     <asp:TextBox ID="txtEditDescription" runat="server" TextMode="MultiLine" Height="350px"
                            Width="350px" Text='<%#Eval("Description") %>'></asp:TextBox>
  </ItemTemplate>
</asp:DataList>

我收到了文字,但我也得到了<br>

2 个答案:

答案 0 :(得分:2)

您实际上必须再次将Replace()返回的字符串分配给Text属性。

var textBox = (TextBox)(EditProductList.Items[0].FindControl("txtEditDescription"));
textBox.Text = textBox.Text.Replace("<br>", "\r\n");

答案 1 :(得分:1)

试试这个(但应该重构):

使用原始代码:

((TextBox)(EditProductList.Items[0].FindControl("txtEditDescription"))).Text = 
          ((TextBox)(EditProductList.Items[0].FindControl("txtEditDescription"))).Text.Replace("<br>", "\r\n");

并像这样重构:

TextBox textBox = ((TextBox)(EditProductList.Items[0].FindControl("txtEditDescription")));
textbox.Text = textBox.Text.Replace("<br>", "\r\n");

请注意,在重构中,我正在用已经找到的控件的引用替换查找。

我们这样做的原因是.Replace函数不会改变有问题的对象,它会返回对象的变异版本,可以这么说。

相关问题