替换文本框中的

本文关键字:br 文本 替换 | 更新日期: 2023-09-27 17:56:24

我在数据列表中有一个文本框,其中包含从数据库中获取的文本。那段文字中有很多<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>

替换文本框中的 <br>

实际上

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

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

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

使用原始代码:

((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");

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

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