У меня есть веб-приложение ASP.NET, которое содержит MasterPage, страницу ASPX, где я динамически загружаю пользовательские элементы управления в UpdatePanel, содержащую PlaceHolder на основе выбора меню. Это отлично работает. Проблема в том, что в моих пользовательских элементах управления нет событий .. У меня есть разные сценарии:
- DropDownList, где выбранное значение должно загружать разные пользовательские элементы управления
- LinkButton, где событие Click должно загрузить другой UserControl в PlaceHolder (на родительской странице).
Я потратил 3 дня на это сейчас и перепробовал несколько вещей для этого .... Зарегистрированные события, среди прочего использованный интерфейс ....
но пока ничего не получалось :( .. спасибо за любую помощь, которую я могу получить.
Да, я пробовал событие Page_PreInit в пользовательском элементе управления.
Единственное, что срабатывает, когда я щелкаю свой LinkButton (или DropDownList) в моем пользовательском элементе управления, это событие Page_Load на родительской странице ... и тогда PlaceHolder, содержащий пользовательский элемент управления (я нажимаю), имеет Contol.Count = null
Вот код
//Page_Load on parent page:
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
LoadDefaultControl(ctrlPlaceHolder, Base_Path + "_Services.ascx");
}
}
// Page_Load в моем пользовательском контроле
protected void Page_Load(object sender, EventArgs e)
{
btJoomlaManagement.Click += btJoomlaManagement_Click;
}
PlaceHolder на родительской странице находится внутри UpdatePanel >> ContentTemplate.
<asp:UpdatePanel ID="pnlControlContainer" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:PlaceHolder ID="ctrlPlaceHolder" runat="server" EnableViewState="False" />
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="menuServices" />
</Triggers>
</asp:UpdatePanel>
Поведение следующее: когда я загружаю свой USerControl Page_Load с событием Click, запускается ... когда я нажимаю кнопку Link в моем usercontrol, запускается Page_Load на родительской странице, но не мой метод Click в моем usercontrol. Пользовательский контроль (который я только что нажал на кнопку Link) исчезает.
Так что мое событие (щелчок) не запускается ... надеюсь, вы понимаете немного лучше.