Bonjour tout le monde.
Là, je suis confronté à un souci d'accés. Je dois me gourrer de pas grand chose, mais je suis paumé ! Je vais essayer de présenter la chose de la manière la plus simple, mais le système est complexe par lui même. Je vais mettre des morceaux de code en espérant pas trop sabrer tout en essayant de ne pas trop tartiner.
D'abord la page côté HTML :
Elle est liée à une MasterPage, donc trés classique. Je n'ai pas de CodeBehind.
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 <%@ Page Title="" Language="VB" MasterPageFile="~/MasterPage/Generale.master" AutoEventWireup="false" CodeFile="DetailGig.aspx.vb" Inherits="Navigation_DetailGig" %> <asp:Content ID="Content1" ContentPlaceHolderID="cphHead" Runat="Server"> </asp:Content> <asp:Content ID="Content2" ContentPlaceHolderID="cphEntete" Runat="Server"> <Composite:MenuNav ID="menu" runat="server" /> </asp:Content> <asp:Content ID="Content3" ContentPlaceHolderID="cphGauche" Runat="Server"> <Composite:DetailGig ID="DetailGig" runat="server" /> </asp:Content> <asp:Content ID="Content4" ContentPlaceHolderID="cphCentral" Runat="Server"> <Composite:ListeCategorieGig ID="listeCateg" runat="server" /> </asp:Content> <asp:Content ID="Content5" ContentPlaceHolderID="cphPied" Runat="Server"> </asp:Content>
Ensuite, dans le composant utilisateur MenuNav j'ai ça :
Ce code permet d'avoir un lien en haut de page pour se loguer. Si on clique, la page devient opaque et une mire de connexion apparait. On entre ce qu'il faut et on est connecté.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 <ajax:UpdatePanel ID="upSing" runat="server" ChildrenAsTriggers="false" UpdateMode="Conditional"> <Triggers> <ajax:AsyncPostBackTrigger ControlID="lbSign" EventName="Click" /> </Triggers> <ContentTemplate> <div id="divFondSign" runat="server" style="display:none;" class="FondOpaque"> <div id="divDevantSign" class="DivSignIn"> <asp:LinkButton ID="lbCloseLogin" runat="server" Text="Close"></asp:LinkButton> <asp:Login ID="logC" runat="server" ></asp:Login> </div> </div> </ContentTemplate> </ajax:UpdatePanel>
Et dans le composant DetailGig j'ai un lien sous cette forme :
Et le CodeBehind suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part <asp:LinkButton ID="lbContact" runat="server"></asp:LinkButton>
L'idée est de tester si l'utilisateur est connecté ou pas avant de pouvoir faire un contact à un aute utilisateur.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 Protected Sub lbContact_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles lbContact.Click If Profile.IsAnonymous Then Dim div As HtmlControls.HtmlControl = Page.FindControl("divFondSign") div.Style("Display") = "Block" Else Response.Redirect("~/Navigation/Contact.aspx?id=" & IdGig) End If End Sub
Mon souci arrive sur la ligne où je tente un accès au Div et le serveur me dit :
Ce que je peux comprendre. Sauf que je ne trouve pas le moyen de pointer vers le Div qui se trouve dans le composant MenuNav.La référence d'objet n'est pas définie à une instance d'un objet.
En gros, de ce que j'ai compris de mes investigations, c'est dans l'arborescence des contrôles que je me paume, mais quel est le bon chemin ?
Voilà, si vous pouvez m'aider, c'est cool.
Partager