Почему img src не работает так, как <asp: Image ImageUrl делает

#c# #javascript

#c# #javascript

Вопрос:

В настоящее время я пытаюсь получить img тег для отображения изображения, настроив его src свойство.

Я использовал asp:ImageButton как:

 asp:ImageButton ID="image" runat="server" ImageUrl='<%# "Images/"   Eval("CarMakeId")   ".jpg" %>' AlternateText="No image found" />
  

Изображение отображалось нормально, но я хотел использовать некоторый JavaScript для нажатия кнопки imagebutton.

Я понимаю, что вы не можете установить свойство ‘Click’ в качестве JavaScript, а только в качестве кода, поэтому я перешел на стандартный HTML img :

 img alt="No image found" src='<%# "Images/"   Eval("CarMakeId")   ".jpg" %>'
                            onclick="openWindow('Test Message'); return false;" />
  

Я могу использовать JavaScript для открытия окна, но изображение не найдено для img.

Ответ №1:

Попробуйте добавить атрибут runat="server" к вашему <img ... /> элементу. Затем это будет доступно как HtmlImage в вашем классе, поэтому, если вы объявите его как HtmlImage myimg , вы можете установить его исходный атрибут в классе с помощью myimg.Src = "..." .

Комментарии:

1. Я должен был упомянуть, что я использую это в сетке, поэтому я получаю CarMakeId из элемента grid, который может отличаться для каждой строки. Я думаю, вы предлагаете установить это в коде за? Правильно ли я говорю, что если бы я устанавливал это в коде, я бы не смог установить CarMakeId?

2. В этом случае вам нужно будет установить его в событии ItemDataBound. Смотрите эту страницу для получения подробной информации: codeproject.com/KB/aspnet/ImageFromDBtoGrid.aspx

Ответ №2:

Решил это, поместив asp: Image внутри ссылки, поэтому не нужно было устанавливать OnClientClick для кнопки изображения. Изображение теперь является частью ссылки и вызывает то же событие при нажатии на ссылку. Также делает код более удобным в обслуживании.