替换
在文本框中

发布于 2024-11-07 05:01:30 字数 637 浏览 2 评论 0原文

我在数据列表中有一个文本框,其中包含从数据库获取的文本。该文本中有很多
,我想要换行符而不是
,这就是它的样子:

((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>

我得到了文本,但我得到了
也是如此。

I have a textbox in a Datalist with text that I get from a Database. There are alot of <br> in that text and I want linebreaks instead of <br>, This is what it looks like:

((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>

I get the text but I get the <br> as well.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

财迷小姐 2024-11-14 05:01:30

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

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

You actually have to assign the string returned by Replace() to the Text property again.

var textBox = (TextBox)(EditProductList.Items[0].FindControl("txtEditDescription"));
textBox.Text = textBox.Text.Replace("<br>", "\r\n");
云朵有点甜 2024-11-14 05:01:30

尝试这样做(但应该重构):

使用原始代码:

((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 函数不会改变有问题的对象,可以这么说,它返回对象的突变版本。

Try this instead (but it should be refactored):

Using your original code:

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

And refactor it like this:

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

Notice that in the refactoring I'm replacing the lookup with a reference to the already found control.

The reason why we do it like this is that the .Replace function doesn't mutate the object in question, it returns a mutated version of the object, so to speak.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文