Запуск событий в UserControls (ASP.NET) - объект события равен нулю? - PullRequest
0 голосов
/ 13 мая 2011

У меня проблема с нулевым объектом Event, когда я хочу запустить событие.Есть и другие потоки здесь и в сети по этому поводу:

Тем не менее, я пытался в соответствии с тем, что рекомендуется в этом посте, но объект события нулевой.Вот код:

На моей странице, который должен прослушивать событие:

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

Выше Page_Load выполняется задолго до того, как EVENT запущен (ниже).

Код в UserControl, содержащий событие:

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 всегда равно нулю?

1 Ответ

4 голосов
/ 13 мая 2011

Ваш обработчик событий должен подписываться при каждой загрузке страницы, а не только! Postback

protected void Page_Load(object sender, EventArgs e)
{

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

}
...