2011-05-13 87 views
0

我想要触发事件时遇到Event对象为空的问题。在这里和在网络上还有其他的线程这一点:在UserControls(ASP.NET)中触发事件 - 事件对象为空?

不过,我已经根据什么是在那些岗位推荐试过,但该事件对象为null 。下面是代码:

在我的网页是谁听的事件:之前的事件(下)发射

protected void Page_Load(object sender, EventArgs e) 
{ 
    if (!IsPostBack) 
    { 
      fieldCustomer1.CustomerSelected += new UserControls.Field_Customer.uintDelegate(fieldCustomer1_CustomerSelected); 
    } 
} 

以上的Page_Load执行好。

在包含事件的用户控件的代码:

public partial class Field_Customer : System.Web.UI.UserControl 
{ 
     public delegate void uintDelegate(uint id); 
     public event uintDelegate CustomerSelected; 

     // ... yada yada yada code code code 

     [DirectMethod] // ext.net stuff 
     public void FireCustomerSelected() 
     { 
      if (CustomerSelected != null) // the CustomerSelected is always null 
       CustomerSelected(_CustomerId); 
     } 
} 

是它的ViewState或类似的东西,那我失踪?为什么CustomerSelected始终为空?

回答

4

你的事件处理程序应该在每一个页面加载认购并不仅仅是!回传

protected void Page_Load(object sender, EventArgs e) 
{ 

      fieldCustomer1.CustomerSelected += new UserControls.Field_Customer.uintDelegate(fieldCustomer1_CustomerSelected); 

} 
+0

,似乎工作!大!谢谢=) – Ted 2011-05-13 12:58:35