【问题标题】:Replace href value at runtime在运行时替换 href 值
【发布时间】:2011-03-18 20:00:55
【问题描述】:

我的主网页中有许多 A html 标记。我想在运行时使用代码替换它们的 HREF 值。怎么做?所有的 a 标签都带有 runat="server" 的标签。

【问题讨论】:

    标签: c# asp.net


    【解决方案1】:

    您必须遍历ControlsCollection 中的所有控件并更新所有HtmlAnchor 类型的控件的Href 属性,如下所示:

    private void UpdateTags(Control page)
        {
            foreach (Control ctrl in page.Controls)
            {
                if (ctrl is HtmlAnchor)
                {
                    ((HtmlAnchor)ctrl).HRef = "myNewlink";
                }
                else
                {
                    if (ctrl.Controls.Count > 0)
                    {
                        UpdateTags(ctrl);
                    }
                }
            }
        }
    

    【讨论】:

      【解决方案2】:

      您可以使用 AncorTag HTML Control 的HRef 属性来更改它。

      像这样:

      <a id="anchor1" runat="server"></a>
      

      在代码中

      void Page_Load(object sender, EventArgs e)
      {
          anchor1.HRef = "http://www.microsoft.com";
      }
      

      【讨论】:

        【解决方案3】:
        HtmlAnchor MyAnchor = (HtmlAnchor)e.Item.FindControl("YourAnchorID");
        MyAnchor.HRef = "mypage.aspx";
        

        【讨论】:

          【解决方案4】:

          您应该给它一个 Id,然后更改 Href 属性。

          <a runat="server" id="link1">link 1</a>
          

          然后:

          link1.HRef = "http://stackoverflow.com";
          

          【讨论】:

            【解决方案5】:

            您还可以制作一个自定义控件,扩展Hyperlink-Class 并在其中添加一些逻辑。 我们使用它来自定义超链接以将 Trackingdata 添加到某些链接。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2011-09-10
              • 2019-03-25
              • 1970-01-01
              • 2014-05-13
              • 1970-01-01
              • 2020-02-10
              • 1970-01-01
              相关资源
              最近更新 更多