【问题标题】:Replace part of a asp label value without replacing entire content in the label替换部分 asp 标签值而不替换标签中的全部内容
【发布时间】:2019-06-19 09:03:53
【问题描述】:

我将一些 HTML 代码作为值传递给 asp:Label,其中包含具有唯一 id 和类名的 div 以及内联 JavaScript。我想通过替换标签字符串中的任何特定字符来更改或在标签内添加额外的 div。我怎样才能完成这项工作?

假设我有下面的 HTML 代码作为 ID lblcode 的 asp 标签的值,在 HTML 代码中,我有 3 个 div,其中 div lvl1container 中有 content1、2 和 3。我想通过将++ADD_MORE++ 替换为<div id=\"lvl1_4>content4</div>++ADD_MORE++ 来添加带有HTML div 标签的内容4。

Client side:
<asp:Label ID="lblcode" runat="server"></asp:Label>
<asp:TextBox ID="txtappend" runat="server"></asp:TextBox>
<asp:Button ID="btnappend" runat="server" Text="Append"/>

Server side:
string code = "<div id=\"lvl1container\">"+
   "<div id=\"lvl1_1\">content1</div>"+
   "<div id=\"lvl1_2\">content2</div>"+
   "<div id=\"lvl1_3\">content3</div>"+
   "++ADD_MORE++"+
"</div>";
lblcode.Text = code;

因此,我不想替换标签的全部内容,而是只想搜索++ADD_MORE++,并将其替换为asp 文本框txtappend 中给出的值。我怎样才能完成这项工作?提前致谢。

【问题讨论】:

  • 你想要那个服务器端还是客户端?
  • @iamdlm 您的意思是使用 c# 或 javascript 完成它?如果那样的话,任何一种方式都对我有用。
  • 我认为您应该问如何使用 ASP.Net 或 Javascript 制作可以添加项目的列表。您处理此问题的方式不是一个好方法。
  • 是的,虽然你应该考虑@Archer 观察
  • .Replace("++ADD_MORE++", txtappend.Value) ?

标签: c# html asp.net


【解决方案1】:

在追加按钮点击,试试下面的代码

protected void btnappend_Click(object sender, EventArgs e)
{
    System.Text.StringBuilder sb = new StringBuilder();
    sb.Append(lblcode.Text);
    sb.Replace("++ADD_MORE++", $"<div>{txtappend.Text}</div>");
    sb.Append("++ADD_MORE++");

    lblcode.Text = sb.ToString();
}

【讨论】:

    猜你喜欢
    • 2019-05-27
    • 2022-12-08
    • 1970-01-01
    • 2012-07-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-10-10
    • 1970-01-01
    相关资源
    最近更新 更多