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 :

Comment afficher 1 MessageBox à partir d'1 évènement DropDownList?


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 55
    Par défaut Comment afficher 1 MessageBox à partir d'1 évènement DropDownList?
    Bonjour,

    Je dois afficher 1 MessageBox si l'utilisateur sélectionne 1 élément de la DropDownList.
    En fonction de la réponse de l'utilisateur, je dois valider ou invalider des Labels.
    Dans ma DropDownList, les éléments appartiennent à 2 types (type A, type B).
    En fonction du type, je dois afficher "type A : valider le type ? ", si l'élément est de type A.

    A priori, je dois générer la MessageBox avec du JavaScript, mais comment la lancer suite à 1 événement? (je sais afficher 1 MessageBox suite à 1 click, mais suite à 1 événement...?)
    Et comment récupérer la réponse de l'utilisateur dans mon Code-behind?

    Merci par avance.

    David.

  2. #2
    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
    Par défaut
    Tu peux te brancher sur l'événement selectedindexchanged...

    Tu crées ta fonction JavaScript et dans le tag du controle, tu ajoutes

    onSelectedIndexChanged="maFonction();"

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 55
    Par défaut Dans mon javascript, j'ai 1 pb pour récupérer la valeur sélectionnée
    En fait,

    mon pb est que je n'arrive pas à récupérer la valeur de la DropDownList, en javascript.
    Car je ne veux afficher le alert(....) que si la valeur sélectionnée == "Blue".

    voici le code aspx:
    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
    28
     
    <%@ Page Language="C#" AutoEventWireup="true" MasterPageFile="~/Site.Master" CodeBehind="frmContenu05.aspx.cs" Inherits="Devis01.frmContenu05" %>
     
    <asp:Content ID="cttContenu02" ContentPlaceHolderID="cphMain" runat="server">
     
        <asp:TextBox ID="txt1" runat="server" ></asp:TextBox>
        <asp:DropDownList ID="ddl1" AutoPostBack="true" runat="server" 
            onselectedindexchanged="ddl1_SelectedIndexChanged" >
        <asp:ListItem Selected="True">Red</asp:ListItem>
        <asp:ListItem>Green</asp:ListItem>
        <asp:ListItem>Blue</asp:ListItem>
        </asp:DropDownList>
     
        <asp:Button ID="btn1" runat="server" OnClick="" />
     
           <script language="javascript" type="text/javascript" >
            function SiBlue()
            {
                var ddl = document.getElementById("DropDownList1");
                var val = ddl.selectedvalue; // ne marche pas : la méthode selectedvalue n'est pas disponible
                if (val == "Blue")
                {
                    alert('cest bleu'+ddl);
                }                     
            }
           </script>
     
    </asp:Content>
    et voici le code-behind:
    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
    28
    29
    30
    31
    32
     
    using System;
    using System.Collections;
    using System.Configuration;
    using System.Data;
    using System.Linq;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.HtmlControls;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Xml.Linq;
     
    namespace Devis01
    {
        public partial class frmContenu05 : System.Web.UI.Page
        {
            protected void Page_Load(object sender, EventArgs e)
            {
                //ddl1.Attributes.Add("OnChange", "if (!confirm('Change this ?')){return};");
                ddl1.Attributes.Add("OnChange", "if (SiBlue()){return};");
            }
     
            protected void ddl1_SelectedIndexChanged(object sender, EventArgs e)
            {
                txt1.Text = ddl1.SelectedValue.ToString();
                string str = ddl1.SelectedValue.ToString();
                btn1.Attributes.Add("OnChange", "if (confirm(str))");
            }
        }
    }
    Merci par avance.

    David.

  4. #4
    Membre éclairé Avatar de Ishizaki
    Inscrit en
    Avril 2006
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 262
    Par défaut
    C'est pas parceque ça marche par index ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    var maDDL = document.getElementById('maDropdownList');
    var value = maDDL.options[maDDL.selectedIndex].value;

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    55
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 55
    Par défaut Il doit me manquer une bibliothéque à déclarer pour JavaScript
    Il doit me manquer une bibliothéque à déclarer pour JavaScript,
    car je n'ai pas moyen de sélectionner des index dans la DropDownList "maDDL".

    Les seules choses qui me sont proposée sont du style "sybling", insertBefore", "getAttribute", "childnodes", ...

    Je n'ai pas de maDDL.options ni de maDDL.selected ...

    J'ai oublié de déclarer quelquechose en en-tête, n'est-ce pas ?

    David.

    ps: si je saisi le code :
    var value = maDDL.options[maDDL.selectedIndex].value;
    le code ne s'éxécute plus.

  6. #6
    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
    Par défaut
    Citation Envoyé par david4444 Voir le message
    Il doit me manquer une bibliothéque à déclarer pour JavaScript, car je n'ai pas moyen de sélectionner des index dans la DropDownList "maDDL".
    Il s'agit de JS standard, pas besoin de bibliothèque.

    Citation Envoyé par david4444 Voir le message
    Les seules choses qui me sont proposée sont du style "sybling", insertBefore", "getAttribute", "childnodes", ...

    Je n'ai pas de maDDL.options ni de maDDL.selected ...
    ??? Tu parles au niveau intellisense ?

    Citation Envoyé par david4444 Voir le message
    ps: si je saisi le code :
    var value = maDDL.options[maDDL.selectedIndex].value;
    le code ne s'éxécute plus.
    C'est pourtant ce code qui est correct

    Par contre, dans ton code,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    var ddl = document.getElementById("DropDownList1");
    ne marchera pas car en ASP.NET les id's des contrôles sont auto-générés.

    Tu dois remplacer par

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var ddl = document.getElementById("<%=DropDownList1.ClientID %>");

  7. #7
    Membre éclairé Avatar de Ishizaki
    Inscrit en
    Avril 2006
    Messages
    262
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 262
    Par défaut
    Attention, sous VS, l'intellisense pour JS marche pas pour tout, genre pour les enabled des checkbox, moi ça me les affiche jamais !

    Jsais pas, essaie un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    var value = maDDL.selectedIndex;

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

Discussions similaires

  1. Réponses: 15
    Dernier message: 15/10/2006, 23h16
  2. Réponses: 15
    Dernier message: 20/06/2006, 14h46
  3. [C#] Comment afficher un MessageBox ?
    Par chorokari dans le forum ASP.NET
    Réponses: 5
    Dernier message: 14/05/2006, 21h51
  4. Réponses: 12
    Dernier message: 03/11/2005, 18h45
  5. Comment afficher un MessageBox depuis une fenêtre réduite ?
    Par cyberma dans le forum Composants VCL
    Réponses: 2
    Dernier message: 30/07/2005, 18h16

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