ОК, поэтому у меня есть страница со списком. Внутри шаблона элемента списка просмотра находится пользовательский контроль. Этот пользовательский контроль пытается вызвать событие, чтобы страница хостинга могла его прослушать. Моя проблема в том, что событие не запускается, так как обработчик имеет значение null. (т.е. EditDateRateSelected - мой обработчик и его нуль при отладке)
protected void lnkEditDate_Click(object sender, EventArgs e)
{
if (EditDateRateSelected != null)
EditDateRateSelected(Convert.ToDateTime(((LinkButton)frmViewRatesDate.Row.FindControl("lnkEditDate")).Text));
}
На границе элемента данных моего списка я добавляю свои обработчики событий
protected void PropertyAccommodationRates1_ItemDataBound(object sender, ListViewItemEventArgs e)
{
if (e.Item.ItemType == ListViewItemType.DataItem)
{
UserControls_RatesEditDate RatesViewDate1 = (UserControls_RatesEditDate)e.Item.FindControl("RatesViewDate1");
RatesViewDate1.EditDateRateSelected += new UserControls_RatesEditDate.EditDateRateEventHandler(RatesEditDate1_EditDateRateSelected);
RatesViewDate1.PropertyID = (int)Master.PropertyId;
if (!String.IsNullOrEmpty(Accommodations1.SelectedValue))
{
RatesViewDate1.AccommodationTypeID = Convert.ToInt32(Accommodations1.SelectedValue);
}
else
{
RatesViewDate1.AccommodationTypeID = 0;
}
RatesViewDate1.Rate = (PropertyCMSRate)((ListViewDataItem)e.Item).DataItem;
}
}
Мой код события все работает нормально, если элемент управления находится внутри страницы и при загрузке страницы у меня есть строка:
RatesEditDate1.EditDateRateSelected += new UserControls_RatesEditDate.EditDateRateEventHandler(RatesEditDate1_EditDateRateSelected);
Но, очевидно, мне нужно прослушивать события внутри списков управления.
Любой совет будет принят с благодарностью. Я попытался установить для EnableViewState значение true для моего списка, но это не имело значения. Есть ли где-то еще, где я должен подключить обработчик управления?
Примечание - извиняюсь за неправильную терминологию, и я называю делегатов обработчиками и т. Д.