Итак, вот мое расположение элементов управления, я удалил форматирование таблиц, а что нет. У меня проблема в том, что событие InterventionSaved
всегда равно нулю.
<asp:Repeater ID="Repeater1" runat="server" OnItemDataBound="rptAreaConcern_ItemDataBound">
<ItemTemplate>
<asp:UpdatePanel ID="updIntervenion" runat="server">
<ContentTemplate>
<UC:InterventionLayout ID="InterventionLayout" runat="server"/>
</ContentTemplate>
</asp:UpdatePanel>
</ItemTemplate>
</asp:Repeater>
В коде страницы я пытаюсь зарегистрировать событие InterventionLayout.InterventionSaved
для каждого элемента в repeater1
.
protected void rptAreaConcern_ItemDataBound(Object Sender, RepeaterItemEventArgs e)
{
InterventionLayout InterventionLayout = ((InterventionLayout)e.Item.FindControl("InterventionLayout"));
//InterventionLayout.ProgressMonitor = ddlProgressMonitoringOwner; //tried to pass the drop
//InterventionLayout.ProgressMonitorDuration = ddlDuration; //down lists to the control(fail)
InterventionLayout.InterventionSaved += new EventHandler(NonAcademicInterventionSaved);
InterventionLayout.LoadAssignedInterventionData();
}
private void NonAcademicInterventionSaved(object sender, EventArgs e)
{
//this never gets called
//ParentSave();
//UpdatePanel();
}
Теперь в моем пользовательском контроле InterventionLayout.ascx.cs
У меня есть кнопка сохранения, которая вызывает Save_Clicked(object sender, EventArgs e)
У меня есть четное определение:
public event EventHandler InterventionSaved;
protected void btnSave_Click(object sender, EventArgs e)
{
Save();
if(null != InterventionSaved) // this is always null
InterventionSaved(this, new EventArgs());
}
InterventionSaved всегда равно нулю. Я не знаю почему или я делаю что-то не так. Я знаю, что это установлено в элементе управления, когда я вхожу в InterventionLayout.LoadAssignedInterventionData()
. Затем, когда у меня установлена точка останова в btnSave_Click
InterventionSaved
, она всегда равна нулю.
Моя главная цель - иметь возможность уведомить родителя и запустить его NonAcademicInterventionSaved()
метод. Оттуда я хотел бы в конечном итоге обновить панель обновления. То, что я пытаюсь сделать, не должно быть сложным, но оказалось, что это скорее головная боль, чем ожидалось.