J'ai un masterpage avec un panneau de mise à jour:Usercontrol postback ne fonctionne pas dans UpdatePanel
<asp:UpdatePanel ID="UpdatePanel" runat="server" ChildrenAsTriggers="true" EnableViewState="False"
UpdateMode="Conditional">
<ContentTemplate>
<div id="mainContent">
<asp:ContentPlaceHolder ID="ContentPlaceHolder1" runat="server">
</asp:ContentPlaceHolder>
</div>
</ContentTemplate>
<Triggers>
</Triggers>
</asp:UpdatePanel>
Ensuite, je dois page Default.aspx qui utilise le fichier masterpage:
<asp:Content ID="Content1" runat="server" ContentPlaceHolderID="ContentPlaceHolder1">
<asp:PlaceHolder ID="plhCurrentItem" runat="server"></asp:PlaceHolder>
</asp:Content>
je charge programme usercontrols en l'espace réservé avec id plhCurrentItem.
Le problème est que lorsque je clique sur un bouton dans la commande usercontrol, aucun événement ne se déclenche. La commande usercontrol disparaît et le panneau de mise à jour est laissé vide.
Qu'est-ce que je fais mal?
Mise à jour
code utilisé pour ajouter usercontrols. La méthode LoadControls est appelée à partir de l'événement Page_load.
Control ctlCurrentItem = null;
public string currentControl
{
get { return ((string)Session["currentControl"]); }
set { Session["currentControl"] = value; }
}
public void LoadControls()
{
switch (currentControl)
{
case "Home":
ctlCurrentItem = Page.LoadControl("~/pages/Home.ascx");
ctlCurrentItem.ID = "Home";
break;
case "Resume":
ctlCurrentItem = Page.LoadControl("~/pages/Resume.ascx");
ctlCurrentItem.ID = "Resume";
break;
case "Projects":
ctlCurrentItem = Page.LoadControl("~/pages/Projects.ascx");
ctlCurrentItem.ID = "Projects";
break;
case "Contact":
ctlCurrentItem = Page.LoadControl("~/pages/Contact.ascx");
ctlCurrentItem.ID = "Contact";
break;
default:
return;
}
plhCurrentItem.Controls.Clear();
plhCurrentItem.Controls.Add(ctlCurrentItem);
}
Comment chargez-vous par programme les commandes usercontrols? Quel événement? – DavidGouge
Dans l'événement de chargement de la page –
Ahh, page_Load, rendez-vous avec la réponse de _rick_schott. : D – DavidGouge