как добавить событие onclick или mouseover к кнопке image во время выполнения - PullRequest
0 голосов
/ 01 февраля 2011

кнопки изображений ive, которые были созданы во время выполнения из базы данных, и мне нужно добавить их для события onclick или mouseover, но мне не удалось

imagebutton.click += new ImageClickEventHandler(imageButton_Click);

я добавляю это, когда создаю кнопки изображений, что мне еще нужно

также я попробовал javascript, но он тоже не стреляет;

<script type="text/javascript">
function SetProductImage(imgID) {
    document.getElementById('imgProduct').src=document.getElementById(imgID).src;
}
</script>

imgProductImage.Attributes["onclick"] = "javascript:SetProductImage('" + imgProductImage.ID + "')";

спасибо ...

Ответы [ 3 ]

0 голосов
/ 01 февраля 2011

Вы пытаетесь запустить код за событием?или событие JavaScript?Если вы пытаетесь добавить событие javascript к своему элементу, вам следует добавить атрибут.В данный момент его там нет, когда вы используете: Attributes ["onclick"].Так было бы как:

imgProductImage.Attributes.Add("onclick","SetProductImage('" + imgProductImage.ID + "')");
0 голосов
/ 01 февраля 2011

Хорошо.Я думаю, я узнал, чего вы пытаетесь достичь.Вы должны явно установить идентификатор элемента управления в Page_Load:

ImageButton img = new ImageButton();
img.ID = "image1";
img.ImageUrl = "YOUR_IMAGE_URL";
img.OnClientClick = "SetProductImage('" + img.ID + "');return false;";
Controls.Add(img);  

Просто убедитесь, что если вам нужно определить несколько кнопок изображения, установите уникальный идентификатор для каждой из них.

0 голосов
/ 01 февраля 2011

Из вашего комментария я предполагаю, что вы делаете что-то вроде:

void Page_Load(object s, EventArgs e)
{
    ImageButton img = new ImageButton();
    img.click += new ImageClickEventHandler(imageButton_Click);
    Controls.Add(img);
}

Это не сработает, потому что механизм PostBack отправляет Id элемента управления обратно в поле EventTarget, а цель не указана, поэтому он не знает, где его обработать.

Чтобы заставить это работать должным образом, я обычно оборачиваю дисплей в пользовательский элемент управления и перезаписываю метод CreateChildControls(). Это гарантирует, что элемент управления будет создан в правильное время и доступен после обработки обратной передачи.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...