2010-09-24 2 views
2

У меня есть кнопка ASP, которую я создаю в CodeBhind элемента управления. Вот код:C# кнопки не стрелять?

Button SubmitButton = new Button(); 

protected override void CreateChildControls() 
{ 
    SubmitButton.Text = "Submit"; 
    SubmitButton.Click += new EventHandler(SubmitButton_Click); 
} 

private void SubmitButton_Click(object sender, EventArgs e) 
{ 
    CustomTabs.CreateNewTab(); 
} 

Событие Click не срабатывает. Похоже, что это делает обратную передачу и никогда не ударяет по событию. Есть идеи?

ответ

2

Итак, у вас есть методы, которые не объясняются, но добавляете ли вы SubmitButton на страницу? Где-то должно быть:

SomeServerControl.Controls.Add(SubmitButton); 

Следующие работы для меня (Очевидно, изменить пространство имен):

ASPX

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm1.aspx.cs" Inherits="VS2010WEBFORMS.WebForm1" %> 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head runat="server"> 
    <title></title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    </form> 
</body> 
</html> 

ASPX.CS

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 

namespace VS2010WEBFORMS 
{ 
    public partial class WebForm1 : System.Web.UI.Page 
    { 
     Button SubmitButton = new Button(); 

     protected void Page_Load(object sender, EventArgs e) 
     { 
      SubmitButton.Text = "Submit"; 
      SubmitButton.Click += new EventHandler(SubmitButton_Click); 
      form1.Controls.Add(SubmitButton); 
     } 

     private void SubmitButton_Click(object sender, EventArgs e) 
     { 
      //Something 
     } 
    } 
} 
+0

Да, я добавляю его на страницу в CreateChildControls (), одна строка после того, как я опубликовал (предположил, что это не важно). Я переместил элементы управления в OnLoad(), и теперь он работает. Но не верно ли место CreateChildControls()? –

+0

Вы делаете добавление, как указано в документации, код, который добавляет элемент управления на страницу, будет иметь решающее значение для сохранения вашего сообщения. http://msdn.microsoft.com/en-us/library/system.web.ui.control.createchildcontrols.aspx. –

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