Динамический контроль и его Событие
-
20-09-2019 - |
Вопрос
Мы создаем динамические текстовые поля и кнопки внутри сетки для каждой строки.Теперь мы хотим создать событие нажатия для каждой кнопки.Чтобы создать кнопку внутри сетки, используйте ITemplate.
Код:
ImageButton imbtnAdd = new ImageButton();
imbtnAdd.ID = "imbtn" + columnName;
imbtnAdd.ImageUrl = "btn_add_icon.gif";
imbtnAdd.Width = 20;
container.Controls.Add(imbtnAdd);
Ошибка:
Я использовал imbtnAdd.Click += new ImageClickEventHandler(imbtnAdd_Click);
но он показывает сообщение об ошибке
imbtnAdd_Click не существует
Решение
ImageButton imbtnAdd = new ImageButton();
imbtnAdd.ID = "imbtn" + columnName;
imbtnAdd.ImageUrl = "btn_add_icon.gif";
imbtnAdd.Width = 20;
imbtnAdd.Click += imbtnAdd_Click;
container.Controls.Add(imbtnAdd);
// ...
private void imbtnAdd_Click(object sender, EventArgs e)
{
// handle event
}
Другие советы
Ответ Джристы правильный.
Хотя, если вы хотите реализовать разные обработчики для всех кнопок и используете .Net 3.0 или выше, вы можете использовать лямбды:
imbtnAdd.Click += (object sender, EventArgs e) =>
{
// Code handling code goes here...
};
Не связан с StackOverflow