2012-06-26 4 views
1

У меня есть кнопка, которая должна создаваться динамически, но проблема в том, что я не могу установить свойство OnClick для нее, чтобы запустить метод на стороне сервера btnSubmit_Click (отправитель объекта, EventArgs e)set Свойство OnClick динамически созданного asp: button

Если я:

btnSubmit.Attributes["OnClick"] = "btnSubmit_Click()"; 

это на самом деле добавляет его в OnClientClick вместо этого.

btnSubmit.Click += new EventHandler(btnSubmit_Click); 

также никогда не срабатывает.

Как установить фактический сервер OnClick?

+0

Вы создаете свою кнопку inseide Page_Init/Page_PreInit? – J0HN

+0

Вы разместили Runat = серверный тег? – paragy

+1

@alliswell, он создает кнопку программно – Habib

ответ

4

Bind событие в Page_PreInit

public Button btnSubmit; // Add the on class level as data member 

Protected void Page_PreInit(object sender, EventArgs e) 
{ 
     btnSubmit = new Button();   
     btnSubmit.Text = "Click me";   
     btnSubmit.Click +=new EventHandler(btnSubmit_Click); 
     this.form1.Controls.Add(btnSubmit); 
} 

Добавить это событие.

void btnSubmit_Click(object sender, EventArgs e) 
{ 
    throw new NotImplementedException(); 
} 
+0

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

+0

Где вы создаете кнопку? – Adil

+0

Page_Load, а затем попробовал это глобально тоже, но без изменений –

2
btnSubmit.Click += new EventHandler(btnSubmit_Click); 

// Ваш обработчик события

void btnSubmit_Click(object sender, EventArgs e) 
{ 
    throw new NotImplementedException(); 
} 
+0

забыл упомянуть, попробовал это тоже. никогда не стреляет. Есть ли способ установить runat = server в коде C#? –

+0

действительно ?? где вы добавляете кнопку и обработчик событий? – Habib

+0

page_load метод –

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