我有一个转发器:
<asp:repeater id="someID" runat="server">
<ItemTemplate>
<asp:hyperlink id=<%# Eval("ID")%> runat="server"></asp:hyperlink>
</ItemTemplate>
</asp:repeater>
我需要引用每个超链接并访问它的属性。
在ItemDataBound上,如何继续访问ID刚刚设置的超链接?如果我有超链接的固定ID,那不会有问题。但是因为我需要动态分配ID,所以我找不到方法迷失了......
答案 0 :(得分:1)
如果您需要访问每个项目,那么您必须订阅OnItemDataBound事件然后找到控件
private void rptMyTest_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.AlternatingItem || e.Item.ItemType == ListItemType.Item)
{
Control control = e.Item.FindControl("ID_OF_YOUR_CONTROL") as Control;
if (control != null)
{
var dataItem = e.Item.DataItem as MYITEMTYPE;
if (DateTime.Now > dataItem.DateYouNeedToCheck)
control.ToolTip = "from the past";
//ALL THE MAGIC HAPPENS HERE
}
}
}
希望它有所帮助。
刚添加 只是再次阅读你的帖子。
内部重复器元素的ID将自动设置为每个项目,但您需要将其预先设置为某个静态值(以便获取对它的引用)。
如果您尝试使用JQuery(或javascript)访问它,我建议不要使用硬编码ID - 有不同的方法来做这样的事情。
如果您再解释一下您想要达到的目标,那么回答您的问题或提出建议会更容易。
<强>更新强> 检查上面的代码示例