asp:HyperLink динамический идентификатор

касательно: Динамический идентификатор Управления

У кого-либо есть рабочий пример создания свойства 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")

1
задан Community 23 May 2017 в 10:26
поделиться

1 ответ

Я не думаю, что вам нужно беспокоиться о динамических идентификаторах. Элемент управления 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 гарантирует получение гиперссылки из правой строки повторителя.

2
ответ дан 2 September 2019 в 22:51
поделиться
Другие вопросы по тегам:

Похожие вопросы: