2011-03-18 53 views
3

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

回答

2

你必须在迭代的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控件的HRef属性对其进行更改。

这样的:

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

在代码

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

你应该给它一个ID,然后改变Href属性。

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

然后:

link1.HRef = "http://stackoverflow.com"; 
2
HtmlAnchor MyAnchor = (HtmlAnchor)e.Item.FindControl("YourAnchorID"); 
MyAnchor.HRef = "mypage.aspx"; 
0

你也可以做一个CustomControl,extendi Hyperlink类,并把一些逻辑。 我们将它用于自定义超链接以将Trackingdata添加到某些链接。