Bonjour,

j'ai un petit soucis sur la gestion des controls ajouter dynamiquement

la page principale de mon site contient un menu, une image de fond et un Panel qui represente la partie principale du site.

chaque partie du site est contenu dans des WebUserControls(*.ascx)

lorsque je clique sur un element du menu il change l'image de fond et charge un des WebUserControls dans le Panel

jusque la aucun soucis, le fait de ne pas recreer tous les controls a un très beau rendu


le problème arrive lorsque l'on veut utiliser les bouton et autre des WebUserControls car ceux-ci disparaise sans meme effectuer leur travail...

Page Principal
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="NonConnecter.aspx.cs" Inherits="NonConnecter" %>
 
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
    <title>MediaManager</title>
    <link rel="shortcut icon" href="http://www.megavideo.com/icon.ico" type="image/x-icon" />
    <link href="~/StyleSheet.css" rel="stylesheet" type="text/css" />
</head>
<body>
    <form runat="server">
    <div>
        <div id="BackEnTete" class="conteneur">
            <asp:Image ImageUrl="~/images/top.png" Width="100%" Height="100%" runat="server" />
        </div>
        <div id="ConnexionCreationLink">
            <asp:LinkButton CssClass="link" ID="lnkConnexion" Text="Connexion" runat="server"
                OnClick="lnkConnexion_Click" />
            <asp:Label Text=" | " runat="server" />
            <asp:LinkButton CssClass="link" ID="lnkCreerCompte" Text="Créer un compte" runat="server"
                OnClick="lnkCreerCompte_Click" />
        </div>
        <div id="MenuEnTete">
            <asp:Menu runat="server" ID="menu" Orientation="Horizontal" 
                StaticMenuItemStyle-ForeColor="White" onmenuitemclick="menu_MenuItemClick">
                <Items>
                    <asp:MenuItem Text="Acceuil" />
                    <asp:MenuItem Text="Videos" />
                    <asp:MenuItem Text="Musiques" />
                    <asp:MenuItem Text="Membres" />
                    <asp:MenuItem Text="Groupes" />
                </Items>
            </asp:Menu>
        </div>
        <%--ESPACE BLANC ENTRE LE MENU ET LA PARTIE PRINCIPALE DU SITE--%>
        <%--ESPACE BLANC ENTRE LE MENU ET LA PARTIE PRINCIPALE DU SITE--%>
        <div id="BackBlockCentral" class="conteneur">
            <asp:Image ID="imgBackBlocCentral" ImageUrl="~/images/news.png" Width="100%" Height="100%"
                runat="server" />
        </div>
        <div id="BlockCentral" class="conteneur">
            <asp:Panel ID="center" runat="server"/>
        </div>
    </div>
    </form>
</body>
</html>
Code C# de la Page Principal
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
using System;
using System.Web.UI;
using System.Web.UI.WebControls;
 
public partial class NonConnecter : Page
{
    protected void lnkConnexion_Click(object sender, EventArgs e)
    {
        Panel center = (Panel)Page.FindControl("center");
        center.Controls.Add(Page.LoadControl("~/Connexion.ascx"));
 
        Image img = (Image)Page.FindControl("imgBackBlocCentral");
        img.ImageUrl = "/images/connexion.png";
    }
 
    protected void lnkCreerCompte_Click(object sender, EventArgs e)
    {
        Panel center = (Panel)Page.FindControl("center");
        center.Controls.Add(Page.LoadControl("~/CreerCompte.ascx"));
 
        Image img = (Image)Page.FindControl("imgBackBlocCentral");
        img.ImageUrl = "/images/creation.png";
    }
    protected void menu_MenuItemClick(object sender, MenuEventArgs e)
    {
        switch (e.Item.Text)
        {
            case "Videos":
                Panel center = (Panel)Page.FindControl("center");
                center.Controls.Add(Page.LoadControl("~/Video.ascx"));
                break;
 
            default:
                break;
        }
    }
}
WebUserControl de connexion
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
<%@ Control Language="C#" AutoEventWireup="true" CodeFile="Connexion.ascx.cs" Inherits="Connexion" %>
<asp:Table runat="server" Width="100%">
    <asp:TableRow>
        <asp:TableCell HorizontalAlign="Center">
            <asp:Login runat="server" ID="autoLogin" LoginButtonStyle-Width="50%" LoginButtonImageUrl="~/images/connecter.png"
                LoginButtonType="Image" DestinationPageUrl="~/Connecter.aspx" OnAuthenticate="autoLogin_Authenticate"
                RememberMeSet="True" />
        </asp:TableCell>
        <asp:TableCell HorizontalAlign="Center">
            <asp:PasswordRecovery ID="passwordRecovery" runat="server" />
        </asp:TableCell>
    </asp:TableRow>
</asp:Table>
Code C# du WebUserControl de connexion
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
 
public partial class Connexion : UserControl
{
    protected void autoLogin_Authenticate(object sender, AuthenticateEventArgs e)
    {
        if (Membership.Provider.ValidateUser(autoLogin.UserName, autoLogin.Password))
            FormsAuthentication.RedirectFromLoginPage(autoLogin.UserName, autoLogin.RememberMeSet);
    }
}

merci pour votre aide