2011-05-13 28 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