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#] Déclencher un événement asp.net et un événement JavaScript en même temps ?


Sujet :

ASP.NET

  1. #1
    Membre chevronné Avatar de Filippo
    Homme Profil pro
    Statisticien
    Inscrit en
    Mai 2004
    Messages
    864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Statisticien

    Informations forums :
    Inscription : Mai 2004
    Messages : 864
    Par défaut [c#] Déclencher un événement asp.net et un événement JavaScript en même temps ?
    Bonjour,
    je développe une page web qui permet de sauver dans une base de données ce qui est saisi à l'écran.

    Le bouton enreg permet de sauver la page.

    Je voudrais que l'utilisateur soit averti s'il essaie de sauver la page et qu'il n'a pas rempli un contrôle : f_fiche.

    Comme il n'y a pas d'équivalent au MsgBox VB j'ai pensé à une alerte JavaScript sur click de enreg.

    j'ai défini le bouton comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     <asp:Button ID="enreg" runat="server" BackColor="#C00000" BorderColor="#C00000" BorderStyle="Outset"
                CommandArgument="" CommandName="Enregistre" Font-Bold="True" Font-Italic="True"
                Font-Names="Arial" Font-Size="Medium" ForeColor="White" OnClick="enreg_Click verifiesivide('f_fiche')"
                Text="SAUVEZ !" Width="100%" />
    enreg_Click est une procédure c# qui sauve les données de la page.
    verifiesivide serait un appel JavaScript qui signalerait que f_fiche n'est pas rempli :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    function verifiesivide(Source)
            {
                 if (document.all("Source").value=="")
                    { alert("Vous devez renseigner la valeur de : " + Source);}
            }
    J'obtiens une erreur de compilation :

    Message d'erreur du compilateur: CS1012: Trop de caractères dans le littéral de caractère

    Ligne 4871 : <asp:Button ID="enreg" runat="server" BackColor="#C00000" BorderColor="#C00000" BorderStyle="Outset"
    Ligne 4872 : CommandArgument="" CommandName="Enregistre" Font-Bold="True" Font-Italic="True"
    Ligne 4873 : Font-Names="Arial" Font-Size="Medium" ForeColor="White" OnClick="enreg_Click verifiesivide('f_fiche')"
    Par ailleurs on ne peut pas définir deux événements onclick.

    Autre essai, avec onclientclick :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <asp:Button ID="enreg" runat="server" BackColor="#C00000" BorderColor="#C00000" BorderStyle="Outset"
                CommandArgument="" CommandName="Enregistre" Font-Bold="True" Font-Italic="True"
                Font-Names="Arial" Font-Size="Medium" ForeColor="White" OnClick="enreg_Click"
                Text="SAUVEZ !" Width="100%" OnClientClick="verifiesivide('f_fiche')" />
    Pas d'erreur mais pas de boîte d'information non plus ..

    Comment feriez-vous pour déclencher une boite de dialogue sur click d'un bouton dans cette situation ?

    Merci.

  2. #2
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 210
    Par défaut
    Hello,

    tu as 2 manières de faire :
    Soit tu demande une confirmation genre "voulez vous enregistrez ceci" et si ok tu lance ta commande aspnet
    Soit tu lance ta commande aspnet et dedans tu passe une alert javascrit genre "Vous avez enregistré ceci"

    quel manière t'interesse ? Je te passerai un bout de code correspondant.

  3. #3
    Membre chevronné Avatar de Filippo
    Homme Profil pro
    Statisticien
    Inscrit en
    Mai 2004
    Messages
    864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Statisticien

    Informations forums :
    Inscription : Mai 2004
    Messages : 864
    Par défaut
    Citation Envoyé par NicoNGRI
    Hello,

    tu as 2 manières de faire :
    Soit tu demande une confirmation genre "voulez vous enregistrez ceci" et si ok tu lance ta commande aspnet
    Soit tu lance ta commande aspnet et dedans tu passe une alert javascrit genre "Vous avez enregistré ceci"

    quel manière t'interesse ? Je te passerai un bout de code correspondant.
    Merci NicoNGRI,
    je pense que la seconde manière serait plus pratique car il y a 319 contrôles sur la page.

  4. #4
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 210
    Par défaut
    en Dotnet 1.0

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Page.RegisterClientScriptBlock(strJSScriptKey, "<script language=javascript>alert('Woot');</script>")
    en dotnet 2.0

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Page.ClientScript.RegisterStartupScript(Me.GetType(), "nom", "alert('Woot');", True)

  5. #5
    Membre chevronné Avatar de Filippo
    Homme Profil pro
    Statisticien
    Inscrit en
    Mai 2004
    Messages
    864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Statisticien

    Informations forums :
    Inscription : Mai 2004
    Messages : 864
    Par défaut
    Citation Envoyé par NicoNGRI
    en Dotnet 1.0

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Page.RegisterClientScriptBlock(strJSScriptKey, "<script language=javascript>alert('Woot');</script>")
    en dotnet 2.0

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Page.ClientScript.RegisterStartupScript(Me.GetType(), "nom", "alert('Woot');", True)
    Super, merci NicoNGRI

    J'obtiens un message d'erreur de compilation (je suis bien en framework 2.0) :

    Message d'erreur du compilateur: CS0103: Le nom 'Me' n'existe pas dans le contexte actuel

    Erreur source:



    Ligne 74 : if (f_fiche.Text.Length == 0)
    Ligne 75 : {
    Ligne 76 : Page.ClientScript.RegisterStartupScript(Me.GetType(), "SAISIE", "alert('Vous devez renseigner le numéro de fiche');", True);
    Ligne 77 :
    Ligne 78 : }

  6. #6
    Membre éprouvé Avatar de pinocchio
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2002
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2002
    Messages : 795
    Par défaut
    Bonjour,
    Serait-il possible d'avoir également la seconde méthode, stp?
    Cordialement
    Pinocchio

  7. #7
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 210
    Par défaut
    essaye avec GetType(Page) à la place de Me.GetType()

  8. #8
    Membre chevronné Avatar de Filippo
    Homme Profil pro
    Statisticien
    Inscrit en
    Mai 2004
    Messages
    864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Statisticien

    Informations forums :
    Inscription : Mai 2004
    Messages : 864
    Par défaut
    Citation Envoyé par NicoNGRI
    essaye avec GetType(Page) à la place de Me.GetType()
    Alors là j'obtiens l'erreur de compilation :

    Message d'erreur du compilateur: CS1501: Aucune surcharge pour la méthode 'GetType' ne prend d'arguments '1'

    Erreur source:



    Ligne 75 : {
    Ligne 76 : // Page.ClientScript.RegisterStartupScript(Me.GetType(), "FDRK SAISIE", "alert('Vous devez renseigner le numéro de fiche');", True);
    Ligne 77 : Page.ClientScript.RegisterStartupScript(GetType(Page), "FDRK SAISIE", "alert('Vous devez renseigner le numéro de fiche');", True);
    Ligne 78 : }
    Ligne 79 :

  9. #9
    Membre confirmé
    Inscrit en
    Février 2004
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Février 2004
    Messages : 210
    Par défaut
    Citation Envoyé par pinocchio
    Bonjour,
    Serait-il possible d'avoir également la seconde méthode, stp?
    Cordialement
    Pinocchio
    <SCRIPT language="JavaScript">
    <!--
    function Confirmation()
    {
    if(confirm(Voulez vous enregistrer ceci ?'))
    __doPostBack('Enregistrer','');
    }
    -->
    </SCRIPT>

    dans le bouton onclick="Confirmation()"

  10. #10
    Membre éprouvé Avatar de pinocchio
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2002
    Messages
    795
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Service public

    Informations forums :
    Inscription : Novembre 2002
    Messages : 795
    Par défaut
    Merci beaucoup

  11. #11
    Membre chevronné
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    581
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2004
    Messages : 581
    Par défaut
    c'était pas Me mais this .

    Sinon y avait moyen de lui ajouter un attributes au bouton

    Button.Attributes.add("key","return Appelfonction javascript();");

    La fonction javascritp renvoie alors true ou false, si c'est false rien ne se passe et tu peux voir ton alert.

    Fix

  12. #12
    Membre chevronné Avatar de Filippo
    Homme Profil pro
    Statisticien
    Inscrit en
    Mai 2004
    Messages
    864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Statisticien

    Informations forums :
    Inscription : Mai 2004
    Messages : 864
    Par défaut
    J'avais essayé avec this mais j'avais pas fait attention à la casse.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Page.ClientScript.RegisterStartupScript(this.GetType(), "SAISIE", "alert('Vous devez renseigner le numéro de fiche');", true);
    Marche bien.

    Merci à tous

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 14/09/2010, 16h39
  2. appel de fonction asp.net dans un événement javascript
    Par rochdi123 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 14/05/2009, 15h42
  3. Remplacer des controles ajax dans un site ASP .net par des codes javascript
    Par Contact2012 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 15/09/2008, 13h50
  4. [ASP.NET] Radio liste et javascript
    Par trihanhcie dans le forum ASP.NET
    Réponses: 5
    Dernier message: 04/01/2008, 11h41
  5. asp.net/c# prb de javascript avec masterpage
    Par namto dans le forum ASP.NET
    Réponses: 10
    Dernier message: 30/08/2007, 10h09

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