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 :

Tester le retour de la fonction "javascript:return"confirm" en code behind


Sujet :

ASP.NET

  1. #1
    Futur Membre du Club
    Inscrit en
    Octobre 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 4
    Points : 5
    Points
    5
    Par défaut Tester le retour de la fonction "javascript:return"confirm" en code behind
    Bonjour,

    Afin de pouvoir séléctionner les lignes d'un gridView sans passer par un bouton ou lien, j'ai ajouté ce code dans lévènement RowDataBound du GridView.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
            {        
                if (e.Row.RowType == DataControlRowType.DataRow)
                {
                    e.Row.Attributes.Add("onclick", this.GetPostBackClientEvent(GridView1, "Select$" + e.Row.RowIndex.ToString()));
     
                    e.Row.Attributes.Add("onmouseover", "this.style.backgroundColor='SkyBlue';this.style.cursor='pointer'");
     
                    e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor='White'");
                }
            }
    Ca fonctionne
    Après, dans l'évènement SelectedIndexChanged je recupère sans problème les valeurs de deux colonnes pour les transmettre à une méthode qui change l'état d'un d'enregistrement d'une table SQL.

    J'ai donc voulue faire une demande de confirmation (type message box) pour l'utilisateur, afin d'éviter des erreurs éventuelles et c'est la ou je bloque.
    J'arrive bien à afficher une demande de confirmation mais pas à récupérer le choix de l'utilisateur.

    Voici le code

    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
     
    protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
    {
     
    //Obtient la ligne séléctionnée
                GridViewRow row = GridView1.SelectedRow;
                //stock le numero de compte du programme ds une var
                String NCompte = row.Cells[1].Text;
                //stock le nom du programme  en var
                String nProgramme = row.Cells[0].Text;
     
                String tt = row.Cells[7].Text;
     
                String strMessage = "Etes vous sur de vouloir réactiver le suivi du programme " + nProgramme;
     
                //c'est la ou je testerai bien la valeur de retour 
                //
                //
     
                ClientScript.RegisterStartupScript(this.GetType(), "javascript:return ", "<script>confirm('" + strMessage + "');</script>");
     
                //modifi l'état du compte en appelant la classe TcontroleDAO
                TControleADO.ReactiveCompte(NCompte);
    }
    Merci pour votre aide.

  2. #2
    Membre confirmé Avatar de jacky01
    Profil pro
    Développeur .NET
    Inscrit en
    Juin 2007
    Messages
    537
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Juin 2007
    Messages : 537
    Points : 527
    Points
    527
    Par défaut
    Bonjour,

    Je n'ai pas la solution pour ton code, cela dit juste pour info moi j'utilise beaucoup : http://www.asp.net/ajax/ajaxcontrolt...irmButton.aspx

    Voila si ça peut t'aider
    Je fais ce que je dis et je dis ce que je veux .

  3. #3
    Membre expérimenté
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    871
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Canada

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2007
    Messages : 871
    Points : 1 498
    Points
    1 498
    Par défaut
    Salut,

    Pour le coup de ifConfirm c'est assez simple: tu crééer un bouton avec un évenement onclick="return ifconfirm('tu es sur de ce que tu fais ?');"

    si l'utilisateur confirme: le bouton fera un postback, et si l'utilisateur clique sur annuler, il n'y aura pas de postback.

  4. #4
    Membre éclairé Avatar de Ramajb
    Homme Profil pro
    ----------------------------
    Inscrit en
    Septembre 2007
    Messages
    476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ----------------------------

    Informations forums :
    Inscription : Septembre 2007
    Messages : 476
    Points : 755
    Points
    755
    Par défaut
    Salut,
    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
    protected void GridView1_SelectedIndexChanged(object sender, EventArgs e)
    {
     
    //Obtient la ligne séléctionnée
                GridViewRow row = GridView1.SelectedRow;
                //stock le numero de compte du programme ds une var
                String NCompte = row.Cells[1].Text;
                //stock le nom du programme  en var
                String nProgramme = row.Cells[0].Text;
     
                String tt = row.Cells[7].Text;
     
                String strMessage = "Etes vous sur de vouloir réactiver le suivi du programme " + nProgramme;
     
                //c'est la ou je testerai bien la valeur de retour 
                //
                //
     
                ClientScript.RegisterStartupScript(this.GetType(), "javascript:return ", "<script>confirm('" + strMessage + "');</script>");
     
                //modifi l'état du compte en appelant la classe TcontroleDAO
                TControleADO.ReactiveCompte(NCompte);
    }
    Avec RegisterStartupScript, tu peux exécuter du code javascript a la volée, mais il faut remarquer que le code javascript ne sera pas exécuter a la même endroit où il se trouve dans le code mais uniquement une fois arrivée vers le client. Autrement dis, tu ne peux pas arrêter le process de la page en cours pour avoir une boite de dialogue. Tu l'a uniquement après que le serveur a terminé le rendu de la page en Html.

    En esperant d'avoir aidé.

  5. #5
    Futur Membre du Club
    Inscrit en
    Octobre 2010
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Octobre 2010
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    Ok merci pour vos reponses.

    J ai fini par en conlcure la meme chose que toi Ramajb.

    Ca sera sans message de confirmation et puis c'est tout

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 29/09/2011, 08h16
  2. Réponses: 0
    Dernier message: 25/06/2010, 14h30
  3. Retracer et interagir en javascript avec un contrôle créé en code behind
    Par gabdeschenes dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 18/06/2009, 21h39
  4. Réponses: 2
    Dernier message: 17/06/2008, 12h49
  5. PHP et Javascript afficher le retour d'un fonction
    Par guian dans le forum Général JavaScript
    Réponses: 27
    Dernier message: 25/05/2007, 17h09

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