asp.net динамическая кнопка с обработчиком событий

У меня небольшая проблема с динамически генерируемыми кнопками и их обработчиком событий в asp.net. Я создаю гибкую таблицу с дополнительными кнопками для специальных пользователей. Кнопки будут генерироваться динамически, что отлично работает. Но я не могу заставить работать обработчик событий.

Вот несколько фрагментов моего кода: Создайте кнопку (в собственной функции).

…
Button ButtonChange = new Button();

ButtonChange.Text = "Change";
ButtonChange.ID = "change_" + i.ToString();
ButtonChange.Font.Size = FontUnit.Point(7);
ButtonChange.ControlStyle.CssClass = "button";
ButtonChange.Click += new EventHandler(test);
…

И

void test(object sender, EventArgs e)
{ 
   // Do some stuff       
}

Моя Page_Load пуста.

Но программа не перейдет к тестированию, если я нажму кнопку. Что не так?

Редактировать !!! Проблема в том, что при запуске я не знаю, сколько строк я получаю из своего SQL-запроса. Для каждой строки я добавлю кнопки удаления и изменения. Я вызываю в своей программе метод, который строит результат в виде таблицы. В этом методе я проверяю, является ли текущий пользователь пользователем AdminUser, и если он есть, я вызову функцию buildAdminButtons. Здесь я создаю кнопки в новом столбце для каждой строки. Как я могу получить это в OnLoad?

private void buildAdminButtons(TableRow tempRow, int i)
{
    Button ButtonDelete = new Button();
    Button ButtonChange = new Button();

    TableCell change = new TableCell();
    TableCell delete = new TableCell();

    ButtonChange.Text = "Change";
    ButtonChange.ID = "change_" + i.ToString();
    ButtonChange.Font.Size = FontUnit.Point(7);
    ButtonChange.ControlStyle.CssClass = "button";


    ButtonDelete.Text = "Delete";
    ButtonDelete.ID = "delete_" + i.ToString();
    ButtonDelete.Font.Size = FontUnit.Point(7);
    ButtonDelete.ControlStyle.CssClass = "button";

    change.Controls.Add(ButtonChange);
    delete.Controls.Add(ButtonDelete);

    tempRow.Cells.Add(change);
    tempRow.Cells.Add(delete);
}

Я добавляю каждой кнопке уникальный идентификатор, которого я не знаю в начале. Как я могу справиться с этим?

8
задан Benjamin 9 December 2013 в 00:26
поделиться