2015-03-12 1 views
0

Я пытаюсь позвонить btn_Click с динамически добавленной кнопкой, используя HtmlTextWriter. Но это не вызовет. Я не могу добавить обработчик событий в код позади кнопки, поскольку это не кнопка ASP.NET.Событие триггера за кодом при нажатии кнопки «Динамически добавленная»

protected void btn_Click(object sender, EventArgs e) 
    { 
     WindowJavaScript.Alert("halo"); 
    } 

protected void PageLoad(object sender, EventArgs e) 
{ 
    //some checking hee to determine whether user is admin or not. 
    if(isAdmin) 
    { 
     writer.AddAttribute(HtmlTextWriterAttribute.Class, "nav navbar-nav navbar-right"); 
     writer.RenderBeginTag(HtmlTextWriterTag.Ul); 
     writer.RenderBeginTag(HtmlTextWriterTag.Li); 

     writer.AddAttribute(HtmlTextWriterAttribute.Class, "navbar-brand"); 
     writer.AddAttribute("runat", "server"); 
     writer.AddAttribute(HtmlTextWriterAttribute.Id, "admin_B"); 
     writer.AddAttribute("onserverclick", "btn_Click"); 
     writer.RenderBeginTag(HtmlTextWriterTag.Button); 

     writer.Write("Admin"); 
     writer.RenderEndTag(); 
     writer.RenderEndTag(); 
     writer.RenderEndTag(); 
    } 
} 
+0

Можете ли вы предоставить метод события, где вы пытаетесь это сделать? – adricadar

+0

отредактировал код. – superhuman1314

+0

Можете ли вы добавить эти строки кода в событие init? 'protected void Page_Init (отправитель объекта, EventArgs e) {}' Кроме того, вы ограничены использованием HtmlTextWritter? – adricadar

ответ

1

Попытка перевести свой код для отображения атрибутов кнопки я заметил, что у вас есть writer.AddAttribute("onserverclick", "btn_Click") и вы должны иметь writer.AddAttribute("onclick", "btn_Click").

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

protected void PageLoad(object sender, EventArgs e) 
{ 
     //some checking hee to determine whether user is admin or not. 
     if (isAdmin) 
     { 
      var btnAdmin = new Button(); 
      btnAdmin.Click += btn_Click; 
      btnAdmin.Text = "Admin"; 
      btnAdmin.ID = "admin_B"; 

      otherControl.Controls.Add(btnAdmin); // you need to create otherControl on page 
     } 
}