Допустим, у вас есть 25 объектов, и вы хотите, чтобы один процесс обрабатывал событие клика любого объекта. Вы можете написать 25 делегатов или использовать цикл для обработки события click.

даю одну кнопку на странице динамически. Теперь я хочу использовать событие нажатия кнопки на этой кнопке.

Как я могу сделать это в C # ASP.NET?

Ответы на вопрос(5)

у вас есть 25 объектов, и вы хотите, чтобы один процесс обрабатывал событие клика любого объекта. Вы можете написать 25 делегатов или использовать цикл для обработки события click.

public form1()
{
    foreach (Panel pl  in Container.Components)
    {
        pl.Click += Panel_Click;
    }
}

private void Panel_Click(object sender, EventArgs e)
{
    // Process the panel clicks here
    int index = Panels.FindIndex(a => a == sender);
    ...
}

Чем проще для новичков:

Button button = new Button();
button.Click += new EventHandler(button_Click);

protected void button_Click (object sender, EventArgs e)
{
    Button button = sender as Button;
    // identify which button was clicked and perform necessary actions
}
 Scott Beeson08 сент. 2016 г., 20:22
Неважно, это сработало:button.Click += (se, ev) => button_Click(se, ev, qo);
 A9S609 сент. 2015 г., 09:29
@MichaelMello: не новичок, возможно, был лямбда. "button.click + = (sender, e) => {// сделать что-то здесь}" :)
 Scott Beeson08 сент. 2016 г., 20:14
Могу ли я передать другие аргументы вместе с этим? т.е.button.Click += new EventHandler(button_Click("Test"));?
 Mike31 мая 2011 г., 15:22
Что такое не новичок?

Просто добавьте обработчик событий к кнопке при его создании.

 button.Click += new EventHandler(this.button_Click);

void button_Click(object sender, System.EventArgs e)
{
//your stuff...
}

Это гораздо проще сделать:

Button button = new Button();
button.Click += delegate
{
   // Your code
};
Решение Вопроса
Button button = new Button();
button.Click += (s,e) => { your code; };
//button.Click += new EventHandler(button_Click);
container.Controls.Add(button);

//protected void button_Click (object sender, EventArgs e) { }
 AB Vyas01 июн. 2011 г., 06:04
Во-первых, спасибо вам за кнопку. Нажмите + = (s, e) => {ваш код; }; s = отправитель объекта и e = аргумент события ri8? но тогда также событие нажатия кнопки не срабатывает ... можете ли вы объяснить мне, как это может работать ..
 nativegrip16 мая 2018 г., 12:24
динамически генерируемое событие должно быть зарегистрировано в событии Page_Load / Page_Init за пределами! IsPostBack.
 AB Vyas31 мая 2011 г., 15:11
Это не работает объяснить, как это сделать ...
 Egor4eg31 мая 2011 г., 15:27
Вы должны создать кнопку в методе OnInit, иначе обработчик событий не будет работать
 abatishchev01 июн. 2011 г., 08:20
@amitvyas: это более короткая, но более сложная версия того же кода. Вместо явного объявления обработчика событий - неявное использование лямбда-выражения и анонимного метода:{ this is anon method with 2 arguments declared }

Ваш ответ на вопрос