Agir sur un div dans un controle utilisateur intégré
Bonjour à tous.
Je suis face à un souci où je ne sais plus trop comment m'y prendre.
J'ai un contrôle utilisateur dans lequel j'affiche deux boutons images avec de l'AJAX. Et j'ai un autre contrôle (deux en fait, mais le fonctionnement sera le même) qui affiche un composant de connexion qui contient un div en display none.
Le bouton image du contrôle supérieur doit changer ce display en block pour le faire apparaitre. Tout ceci fonctionne trés bien si tout le monde est dans le même contrôle utilisateur. Mais je suis contraint de séparer les deux systèmes puisqu'il y en a un pour la connexion et l'autre pour l'enregistrement. Et vu qu'ils sont customisés, j'ai des conflits de nommage.
Il y a longtemps j'avais eu le même genre de souci, mais je ne retrouve pas le moyen que j'ai utilisé et je pense que la configuraiton a un peu changé(longtemps ce compte en année...). C'est sur ce forum que l'on m'avait donné la solution et l'explication, mais je ne retrouve pas le topic.
Donc voici le code du contrôle du haut :
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
|
<%@ Control Language="VB" AutoEventWireup="false" CodeFile="ConEnr.ascx.vb" Inherits="Module_GestionUser_ConEnr" %>
<asp:LinkButton ID="lbJoin" runat="server" CausesValidation="false">
<img alt="Inscription" src="/App_Themes/inscription.png" class="noborder" />
</asp:LinkButton>
<img alt="Conexion" src="/App_Themes/ou.png" class="noborder" />
<asp:LinkButton ID="lbSign" runat="server" CausesValidation="false">
<img alt="Conexion" src="/App_Themes/connection.png" class="noborder" />
</asp:LinkButton>
<asp:LoginStatus ID="lsConnexion" runat="server" CssClass="lien CONENR_Lien" LogoutAction="Redirect"/>
<ajax:UpdatePanel ID="upRegister" runat="server" ChildrenAsTriggers="true" UpdateMode="Always" RenderMode="Inline">
<Triggers>
<ajax:AsyncPostBackTrigger ControlID="lbjoin" EventName="Click" />
<ajax:AsyncPostBackTrigger ControlID="btnValider" EventName="Click" />
</Triggers>
<ContentTemplate>
<Composite:Inscription ID="Inscription" runat="server" />
</ContentTemplate>
</ajax:UpdatePanel>
<ajax:UpdatePanel ID="upSing" runat="server" ChildrenAsTriggers="true" UpdateMode="Always" RenderMode="Inline">
<Triggers>
<ajax:AsyncPostBackTrigger ControlID="lbSign" EventName="Click" />
</Triggers>
<ContentTemplate>
<Composite:Connexion ID="Connexion" runat="server" />
</ContentTemplate>
</ajax:UpdatePanel> |
Voici le code d'un contrôle intégré
Code:
1 2 3 4 5 6 7 8
|
<%@ Control Language="VB" AutoEventWireup="false" CodeFile="Connexion.ascx.vb" Inherits="Module_GestionUser_Integre_Connexion" %>
<div id="divFondSign" runat="server" style="display:none;" class="FondOpaqueGene FondOpaqueConEnr">
<div id="divDevantSign" class="DivDevantGene DivDevantConnexion">
<!-- ici tout le code de la mire de connexion, inutile pour l'objet de ce message.-->
</div>
</div>
</div> |
Et là, le codebehind du contrôle supérieur qui gère le bouton pour faire apparaitre la mire de connexion :
Code:
1 2 3 4
|
Protected Sub lbsign_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles lbSign.Click
divFondSign.Style("Display") = "Block"
End Sub |
Evidement, divFondSign n'est pas dans le contrôle utilisateur concerné, il est dans le contrôle utilisateur intégré. Je ne trouve pas le moyen de le toucher.
On m'avait fourni une idée à base de propriété, mais je n'arrive pas à le remetre en place avec ce genre de chose, placé dans le contrôle utilisateur intégré :
Code:
1 2 3 4 5 6
|
Public ReadOnly Property DivFondId() As String
Get
Return divFondSign.UniqueID
End Get
End Property |
Et donc mon souci est que :
- je ne suis pas sûr que ce soit la bonne méthode
- je n'arrive pas à pointer vers cette propriété.
Pouvez vous m'aider ?