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 :

[ASP.NET] Control CheckBox + Javascript


Sujet :

ASP.NET

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2004
    Messages : 231
    Points : 165
    Points
    165
    Par défaut [ASP.NET] Control CheckBox + Javascript
    Bonjour,

    J'aimerai savoir s'il est possible sur un control ASP CheckBox d'executer du code javascript lorsque la valeur du control est modifié ?

    Si l'utilisateur cliques sur le CheckBox, j'aimerai qu'il rende visible ou non un control Panel. Cela marche très bien si j'utilise l'événement OnCheckedChange() mais pour cela je dois effectuer un PostBack et j'aimerai l'éviter.

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2004
    Messages
    417
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Novembre 2004
    Messages : 417
    Points : 581
    Points
    581
    Par défaut
    utilise un updatePanel dans l'ajaxControlToolkit.

    Sinon si tu veux le faire a la mano:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
        <asp:CheckBox ID="showPanel" runat="server" />
        <asp:Panel ID="content" runat="server">
        Test d'affichage
        </asp:Panel>
     
    //Le mettre en attribut car si on met Visible=false le contenu de sera pas rendus par le serveur
    content.Style.Add("display", "none");
    showPanel.Attributes.Add("onclick","document.getElementById('"+ content.ClientID +"').style.display='block';");

  3. #3
    Membre expert
    Avatar de Pongten
    Homme Profil pro
    IT Analyst & Software Developer
    Inscrit en
    Juin 2002
    Messages
    1 173
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : IT Analyst & Software Developer
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Juin 2002
    Messages : 1 173
    Points : 3 543
    Points
    3 543
    Par défaut
    Vi javascript, tu peux tout à fait capturer l'événement OnClick sur la checkbox et vérifié son état via sa propriété selected et en fonction jouer sur la visibilité ou non d'un panel.


    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
     
     
    <asp:checkbox runat="server" id="checkbox1" onclic="CbClick(this);" />
     
    ...
     
    <div id="monPanel" style="display:none;'>...</div>
     
    ...
     
    <script type='text/javascript'>
     
    function CbClick(Checkbox)
    {
        var _panel = document.getElementById('monPanel');
     
        if(Checkbox.selected == true)
        {
             _panel.style.display = 'block';
        }
        else
        {
             _panel.style.display = 'none';
        }
    }
     
    </script>
    Ou quelque chose dans le genre... si tu veux que la place soit réservée mais que le panel soit masqué, tu peux utiliser visibility = visible / hidden plutôt que display...

    Il faut aussi pour la robustesse du code, ajouter quelques test de vérification par ci par là (par ex pour voir que le panel a bien été trouvé, etc...)

  4. #4
    Membre habitué
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    231
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Juillet 2004
    Messages : 231
    Points : 165
    Points
    165
    Par défaut
    ok merci à vous 2
    ça marche nickel

  5. #5
    Futur Membre du Club
    Inscrit en
    Avril 2008
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 7
    Points : 5
    Points
    5
    Par défaut Désolé, mais le pb n'est pas completement résolu
    J'ai fais ceci

    <asp:CheckBox ID="chkEmailSent" runat="server" Text="Send by Email"></asp:CheckBox>

    <asp:TextBox ID="txtEmailSent" runat="server" Enabled="false" />

    <asp:HyperLink ID="lnkEmailSent" runat="server" Text="View Email" Enabled="false">

    In code Behind

    page_load(....)

    chkEmailSent.Attributes.Add("onclick", "document.getElementById('"+ txtEmailSent.ClientID + "').Enabled = ! (this.checked); document.getElementById('"+ lnkEmailSent.ClientID + "').Enabled = ! (this.checked);");

    Avec cette méthode, le txtEmailSent est activé alors que le lnkEmailSent ne l'est pas. Je me demande ou est l'erreur.

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

Discussions similaires

  1. Controles asp.net VS html&javascript
    Par Braillane dans le forum ASP.NET
    Réponses: 5
    Dernier message: 04/01/2008, 17h12
  2. Réponses: 3
    Dernier message: 24/07/2007, 15h06
  3. [Asp.Net] exécuter fonction javascript
    Par ager1912 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 20/03/2007, 19h22
  4. Réponses: 12
    Dernier message: 23/02/2007, 16h32
  5. [ASP.NET] Controler la dimension une image
    Par Azephel dans le forum ASP.NET
    Réponses: 2
    Dernier message: 14/02/2007, 09h55

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