IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

[C#]WebUserControl, afficher apres clic


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite Avatar de bizet
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2005
    Messages
    717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 717
    Par défaut [C#]WebUserControl, afficher apres clic
    bonjour,

    j'ai un webUserControl, composé de 3 labels.
    Dans un label je possede une image, qui si je clique dessus me fait afficher les deux autres.

    Le soucis c'est que je ne sais pas comment faire.

    Voila le code de mon webusercontrol.
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    <div class="info">
        <div class="enteteInfo">
            <asp:Label ID="TitreInformation" runat="server" Text="Titre de l'actualité" CssClass="TitreNews" />
            <img src="img/Expand.gif"  class="NewsExpandButton" id ="ImageInformation" alt="Etendre/Compacter" style="border:0" onclick="DropDownNews()" />     
        </div>
        <asp:Label ID="ContenuInformation" Visible="false" runat="server" Text="Texte de la brève d'information" CssClass="contentInfo" />
        <div class="footerInfo">
            Publié le <asp:Label ID="DatePublicationInformation" runat="server" Text="DatedePublication" CssClass="DateDePublication" />
        </div>
    </div>

    et j'aimerais que lorsque je clique sur l'image le label ContenuInformation s'affiche; donc que l'attribut visible a la valeur true.

    J'ai tenté par du code javascript dans le webusercontrol mais les id ne sont plus les meme dans le code html.

    Merci de vos réponses

  2. #2
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Control.ClientID te donne l'id qu'aura le control dans la page

  3. #3
    Membre émérite Avatar de bizet
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2005
    Messages
    717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 717
    Par défaut
    Merci lutecefalco pour ta réponse.

    Je continues donc d'avancer en tentant de créer des fonctions javascripts dynamiques.

    Mais je bloque sur la facon de créée l'appel à la fonction.

    Un exemple pour bien comprendre :

    Mon webusercontrol :
    Code ASP.NET : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    <asp:Label ID="LabelCommand" runat="server" Text=""></asp:Label>
    <div class="info">
        <div class="enteteInfo">
            
            <asp:Label ID="TitreInformation" runat="server" Text="Titre de l'actualité" CssClass="TitreNews" />
            <img src="img/Expand.gif"  class="NewsExpandButton" id ="ImageInformation" alt="Etendre/Compacter" style="border:0" 
                    onclick="dropdownnews_<asp:Label ID="LabelNameJs" runat="server" Text=""></asp:Label>()" />     
        </div>
        <asp:Label ID="ContenuInformation" Visible="false" runat="server" Text="Texte de la brève d'information" CssClass="contentInfo" />
        <div class="footerInfo">
            Publié le <asp:Label ID="DatePublicationInformation" runat="server" Text="DatedePublication" CssClass="DateDePublication" />
        </div>
    </div>

    Et dans le code behind de mon usercontrol :


    Code C# : 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
     
    protected void Page_Load(object sender, EventArgs e)
        {
     
            Control myControl = (Control)this;
            string name= myControl.ClientID.ToString();
     
            NomControl.Text = name;
     
            String command = "<script language=\"javascript\">" +
                                "function dropdownnews_"+name+"(){"+
                                "alert(\"salut\");}</script>";
     
            LabelNameJs = name;
            LabelCommand.Text = command;
     
        }
    Evidemment ca ne fonctionne pas car il aime pas l'insertion d'un label au milieu d'une chaine de caractere.
    Donc si quelqu'un connait une méthode en ASP.NET pour que je puisse inserer le nom dans le code de ma page ASP, ca serait bien sympa

  4. #4
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    T'as des fonctions spécifiques pour insérer du code javascript dans ta page depuis le code behind

    Regarde dans Page.ClientScript

  5. #5
    Membre émérite Avatar de bizet
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2005
    Messages
    717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 717
    Par défaut
    Merci encore lutecefalco pour ta réponse.
    J'ai implémenté ma solution avec le Page.ClientScript, mais je n'obtiens pas ce que je veux.

    En effet au final j'obtiens une seul fois ma fonction javascript qui fait que les nombreux usercontrols appellent la meme fonction alors que je veux qu'il y ait une fonction par usercontrol.

    Je fais un petit récapitulatif :

    j'ai un usercontrol avec une image. Le clic sur cet image doit faire apparaitre la suite du texte.
    Je ne peux pas utiliser les fonctions ASP.NET car ce n'est pas un bouton je dois donc passer par des fonctions javascript.

    J'ai donc créer une fonction javascript qui prend en parametre le nom de mon usercontrol. Il me reste juste a passer ce parametre, et cest la que je bloque
    Code de mon usercontrol :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <div class="info">
        <div class="enteteInfo">
            
            <asp:Label ID="TitreInformation" runat="server" Text="Titre de l'actualité" CssClass="TitreNews" />
            <img src="img/Expand.gif"  class="NewsExpandButton" id ="ImageInformation" alt="Etendre/Compacter" style="border:0" 
                    onclick="dropdownnews(NAMEUSERCRTL)" />     
        </div>
        <asp:Label ID="ContenuInformation" Visible="true" runat="server" Text="Texte de la brève d'information" CssClass="contentInfo" />
        <div class="footerInfo">
            Publié le <asp:Label ID="DatePublicationInformation" runat="server" Text="DatedePublication" CssClass="DateDePublication" />
        </div>
    </div>
    dans mon code behind j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Control myControl = (Control)this;
    string name= myControl.ClientID.ToString();
    il me faut donc juste passer cette chaine name a mon code html.

    Merci de votre aide

  6. #6
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Tu vas être obligé de construire ta fonction associée au OnClick de ton image dans le code behind

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. panneau qui s'affiche après un clic
    Par bouchra19 dans le forum Général Conception Web
    Réponses: 2
    Dernier message: 27/05/2012, 19h58
  2. preloader des images pour les faires afficher apres un clic
    Par polochtwo dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 14/03/2009, 13h37
  3. [Google Maps] Afficher des infos après clic sur un point
    Par jbaudin dans le forum APIs Google
    Réponses: 0
    Dernier message: 24/12/2008, 11h54
  4. [W3C] Afficher dans un div apres clic menu
    Par lorenzo62 dans le forum Balisage (X)HTML et validation W3C
    Réponses: 1
    Dernier message: 04/01/2008, 18h59
  5. Apres clic affiché mon IFRAME ?
    Par McStealer dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 21/03/2007, 09h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo