2014-02-13 3 views
0

У меня есть кнопка, созданная в коде следующим образом:asp.net обработчик событий для кнопки dynamicallycreated

some method { 
    Button btnExportToExcel = new Button(); 
    btnExportToExcel.Text = "Export To Excel"; 
    btnExportToExcel.Click += new EventHandler(btnExportToExcel_Click); 
    pnlListView.Controls.Add(btnExportToExcel); 
} 

protected void btnExportToExcel_Click(object sender, EventArgs e) 
     { 
      //do something 
     } 

Проблема заключается в том, что я не могу когда-нибудь, чтобы выполнить код из метода событий.

Почему?

+0

Когда называется Somethod? Динамические элементы управления должны быть добавлены в событие PreInit – Oscar

ответ

2

Вы добавляете элементы управления к странице в обработчике событий preinit? Check

+0

Загружается в метод Page_Load и внутри 'if (! IsPostBack)' statament –

+0

Ok, загружая его в Pre_Init, исправляет проблему. Спасибо. –

+0

Есть еще одна небольшая проблема, что, если я хочу добавить кнопку управления после других элементов управления, которые получают условно созданные? Значит, они могут существовать в pre_init –

0

Просьба добавить динамические элементы управления в обработчике событий Init Init, так что ViewState и события запускаются соответствующим образом.

1

Вы должны добавить кнопку к любому контроллеру.

protected void Page_Load(object sender, EventArgs e) 
    { 
     Button btnExportToExcel = new Button(); 
     btnExportToExcel.Text = "Export To Excel"; 
     btnExportToExcel.Click += new EventHandler(btnExportToExcel_Click); 
     //this is add the button to the form1 
     this.form1.Controls.Add(btnExportToExcel); 
    } 

    void btnExportToExcel_Click(object sender, EventArgs e) 
    { 
     //... 
     Response.Write("click me..."); 
    } 
+0

Извините, я добавляю его в панель. Отредактирован код выше. –

Смежные вопросы