Как я могу создать динамическое событие нажатия кнопки на динамической кнопке? - PullRequest
37 голосов
/ 31 мая 2011

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

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

Ответы [ 5 ]

53 голосов
/ 31 мая 2011
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) { }
35 голосов
/ 31 мая 2011

Легче для новичков:

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
}
10 голосов
/ 31 мая 2011

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

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

void button_Click(object sender, System.EventArgs e)
{
//your stuff...
}
7 голосов
/ 19 января 2015

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

Button button = new Button();
button.Click += delegate
{
   // Your code
};
0 голосов
/ 14 октября 2016

Допустим, у вас есть 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);
    ...
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...