Evenement sur controls ajouter dynamiquement
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:
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:
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:
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:
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