好的,想想下一个情况:
我有一个带有转发器的.ascx文件,在这个转发器中有一个asp:超链接
是否可以从后面的代码中设置此超链接的URL?
最后,链接将始终指向相同的网址,但需要重复x次。
测试代码ascx:
<asp:Repeater runat="server" ID="repeater" OnItemDataBound="repeater_ItemDataBound">
<ItemTemplate>
<div class="container">
<asp:HyperLink ID="hypUrl" runat="server" Text="Dit is een test link"> </asp:HyperLink>
</div>
</ItemTemplate>
</asp:Repeater>
通常在后面的代码中我会做类似的事情:
hypUrl.NavigateUrl = Url;
但由于超链接在转发器中,它似乎找不到ID 任何人都知道实现这一目标的最佳方法是什么?
提前致谢!
答案 0 :(得分:3)
在转发器 ItemDataBound事件中。这样做
protected void repeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item ||
e.Item.ItemType == ListItemType.AlternatingItem)
{
HyperLink hypLink = (HyperLink)e.Item.FindControl("hypUrl");
hypLink.NavigateUrl = "http//www.stackoverflow.com";
}
}
答案 1 :(得分:2)
是的,在repeater_ItemDataBound
事件中:
protected void repeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
// Find the hyperlink
HyperLink hypUrl = (HyperLink)e.Item.FindControl("hypUrl");
// Set the property
hypUrl.NavigateUrl = "foo";
}
}