Вопрос

Мы создаем динамические текстовые поля и кнопки внутри сетки для каждой строки.Теперь мы хотим создать событие нажатия для каждой кнопки.Чтобы создать кнопку внутри сетки, используйте 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...
};
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top