在运行时替换href值

时间:2011-03-18 11:37:18

标签: c# asp.net

我的主网页上有很多A html标签。我想在运行时使用代码替换它们的HREF值。怎么做?所有标签都标有runat =“server”。

5 个答案:

答案 0 :(得分:2)

您可以使用AncorTag HTML Control的HRef属性进行更改。

像这样:

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

代码

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

答案 1 :(得分:2)

HtmlAnchor MyAnchor = (HtmlAnchor)e.Item.FindControl("YourAnchorID");
MyAnchor.HRef = "mypage.aspx";

答案 2 :(得分:2)

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

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);
                }
            }
        }
    }

答案 3 :(得分:1)

您应该为其指定ID,然后更改Href属性。

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

然后:

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

答案 4 :(得分:0)

你也可以制作一个CustomControl,扩展Hyperlink - 类并将一些逻辑放入其中。 我们将它用于自定义超链接,以将Trackingdata添加到某些链接。