У меня есть следующая функция, которая обновляет содержимое UpdatePanel, добавляя / загружая пользовательский элемент управления ascx в заполнитель, который находится в default.aspx:
protected void NavigationTab_Click(string ascxpath)
{
Control ctrl = LoadControl(ascxpath);
//cphmaincontent is my asp ContenPlaceHoderId in masterpage
PlaceHolder phmaincontent = (PlaceHolder)cphmaincontent.FindControl("phmaincontent");
phmaincontent.Controls.Clear();
phmaincontent.Controls.Add(ctrl);
upmaincontent.Update();
}
Панель обновления главной страницы:
<asp:UpdatePanel ID="upmaincontent" runat="server" UpdateMode="Conditional">
<ContentTemplate>
<asp:Label ID="lbmsg" runat="server" Text=""></asp:Label>
<asp:ContentPlaceHolder ID="cphmaincontent" runat="server">
</asp:ContentPlaceHolder>
</ContentTemplate>
</asp:UpdatePanel>
Я вызываю NavigationTab_Click из моего элемента управления навигацией, который является другим настраиваемым элементом управления ascx, мой объект Ctrl Control, который динамически загружается для каждого, имеет кнопку и метку, когда я нажимаю кнопку, он просто переназначает некоторый текст для метки.
и у меня есть следующий код на главной странице, чтобы получить путь управления ascx:
protected override void OnInit(EventArgs e)
{
//raising an event to set ascx path
mainmenu.NavigatePath += new usercontrols.mainmenu.NavigationHandler(NavigationTab_Click);
base.OnInit(e);
}
пока все работает хорошо, после загрузки моего объекта ctrl с помощью вызова функции NavigationTab_Click я вижу мой ctrl в заполнителе и имеет кнопку и метку, но проблема в том, что если я нажму эту кнопку, ей следует переназначить метку какому-то тексту но вместо этого весь контрольный контент ctrl исчезает, помогите.