有没有人有动态创建超链接ID属性的工作示例?
我有一个带有多个超链接的转发器(每行3个用于调查)。我想更改点击的超链接的图像。转发器是从其绑定的数据源创建的。不能让它运作
编辑:我使用了你的例子,它确实改变了图像,但它改变了所有ID =“HappyLink”项而不是所选项。
// if the happy emoticon was clicked
if (this.Request.QueryString["hyperlink"] == "HappyLink")
{
HyperLink happylink = e.Item.FindControl("HappyLink") as HyperLink;
if (happylink != null)
{
happylink.ImageUrl = "~/images/happy_selected.jpg";
} // if (happylink != null)
} // if (this.Request.QueryString["hyperlink"] == "HappyLink")
答案 0 :(得分:2)
我认为您不必担心动态ID。 Repeater
控件为您排序ID,您无需关心它们是什么。
如果您的意思是每个Hyperlink
都是图片,那么您需要处理Repeater
的{{3}}事件。在标记中,您为Hyperlink
提供ID。在ItemDataBound
事件处理程序中,您对从事件参数获取的FindControl
对象使用Item
方法,并传递Hyperlink
的ID。这将为您提供实际的超链接控件。然后只需设置图像。
例如:
void Repeater_ItemDataBound(object sender, RepeaterItemEventArgs e)
{
HyperLink hyperLink = e.Item.FindControl("HappyLink") as HyperLink;
if (hyperLink != null)
{
// do something with the hyperlink
}
}
在FindControl
方法中,您只需使用您在标记中设置的ID。 e.Item
的使用可确保您从转发器的右行获取超链接。