касательно: Динамический идентификатор Управления
У кого-либо есть рабочий пример создания свойства ID гиперссылки динамично?
У меня есть повторитель с несколькими оттянутыми гиперссылками (3 на строку для обзора). Я хотел бы изменить изображение нажатой гиперссылки. Повторитель создается из своего связанного источника данных. Наклон получает его работа
Править: Я использовал Ваш пример, и он действительно изменяет изображение, однако он изменяет весь идентификатор = объекты "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")
Я не думаю, что вам нужно беспокоиться о динамических идентификаторах. Элемент управления Repeater
сортирует идентификаторы за вас, вам не нужно заботиться о том, какие они.
Если вы имеете в виду, что каждая гиперссылка
является изображением, то вам нужно обрабатывать ItemDataBound
событие Repeater
. В разметке вы присваиваете гиперссылке
идентификатор. В обработчике события ItemDataBound
вы используете метод FindControl
на объекте Item
, который вы получаете из аргумента события, передавая идентификатор Hyperlink
. Это даст вам фактический элемент управления гиперссылкой. Затем просто установите изображение.
Например:
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
гарантирует получение гиперссылки из правой строки повторителя.