【发布时间】:2011-03-18 20:00:55
【问题描述】:
我的主网页中有许多 A html 标记。我想在运行时使用代码替换它们的 HREF 值。怎么做?所有的 a 标签都带有 runat="server" 的标签。
【问题讨论】:
我的主网页中有许多 A html 标记。我想在运行时使用代码替换它们的 HREF 值。怎么做?所有的 a 标签都带有 runat="server" 的标签。
【问题讨论】:
您必须遍历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);
}
}
}
}
【讨论】:
您可以使用 AncorTag HTML Control 的HRef 属性来更改它。
像这样:
<a id="anchor1" runat="server"></a>
在代码中
void Page_Load(object sender, EventArgs e)
{
anchor1.HRef = "http://www.microsoft.com";
}
【讨论】:
HtmlAnchor MyAnchor = (HtmlAnchor)e.Item.FindControl("YourAnchorID");
MyAnchor.HRef = "mypage.aspx";
【讨论】:
您应该给它一个 Id,然后更改 Href 属性。
<a runat="server" id="link1">link 1</a>
然后:
link1.HRef = "http://stackoverflow.com";
【讨论】:
您还可以制作一个自定义控件,扩展Hyperlink-Class 并在其中添加一些逻辑。
我们使用它来自定义超链接以将 Trackingdata 添加到某些链接。
【讨论】: