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 Ajax Discussion :

jQuery Ajax avec asp.net


Sujet :

ASP.NET Ajax

  1. #1
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 391
    Points : 185
    Points
    185
    Par défaut jQuery Ajax avec asp.net
    Bonjour,

    j'essaie de faire quelque chose comme ça mais ça ne fonctionne pas (ce sont les alert 3 puis 2 qui s'affichent) :

    Mon fichier .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
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    <head runat="server">
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    	<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js"></script>
    	<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.12/jquery-ui.min.js"></script>
        <title>Test dotnet</title>
        <link rel="stylesheet" type="text/css" href="CSS/Test.css" />
    	<link rel="stylesheet" type="text/css" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.12/themes/smoothness/jquery-ui.css" />
     
        <script type="text/javascript">
     
     
            jQuery(document).ready(function ($) {
     
     
                $("#bt1").click(function (e) {
                    $.ajax({
                        type: "POST",
                        url: "Test.aspx/GetDate",
                        data: "{}",
                        contentType: "application/json; charset=utf-8",
                        dataType: "json",
                        success: function (msg) {
                            alert("1");
                        },
                        complete: function (msg) {
                            alert("2");
                        },
                        error: function (msg) {
                            alert("3");
                        },
                        send: function (msg) {
                            alert("4");
                        },
                        stop: function (msg) {
                            alert("5");
                        },
                        start: function (msg) {
                            alert("6");
                        }
                    });
                });
     
     
            });
    		</script>
    </head>
     
     
     
     
    <body>
     
        <form id="formOptions" runat="server">
     
     
     
     
            <asp:Button ID="bt1" runat="server" Text="Bouton" PostBackUrl="~/Test.aspx" />
     
     
     
        </form>
     
    </body>

    Et mon code behind en C# (dans le fichier Test.aspx.cs) :

    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
    namespace Test
    {
     
        public partial class Test : System.Web.UI.Page
        {
     
            [WebMethod]
            public static string GetDate()
            {
                return DateTime.Now.ToString();
            }
     
            protected void Page_Load(object sender, EventArgs e)
            {
                [...]
            }
     
        }
    }
    Une idée de pourquoi ça ne rentre pas dans la fonction success de ajax ?

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    C'est étrange, ça fonctionne correctement pourtant, je passe bien dans success puis complete avec ton code exactement

    Met un point d'arrêt sur alert("3") et regarde le contenu de ta variable msg. Quel est le message ?
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 391
    Points : 185
    Points
    185
    Par défaut
    Citation Envoyé par DotNetMatt Voir le message
    C'est étrange, ça fonctionne correctement pourtant, je passe bien dans success puis complete avec ton code exactement

    Met un point d'arrêt sur alert("3") et regarde le contenu de ta variable msg. Quel est le message ?
    Le message était vide :/
    Bizarrement, si je remplace mon <asp:button> par un <a href>, ça rentre dans le success... une idée pour garder le bouton asp ?

  4. #4
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 065
    Points : 4 229
    Points
    4 229
    Par défaut
    Rajoute un return false à la fin de ta fonction ajax
    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
    $.ajax({
                        type: "POST",
                        url: "Test.aspx/GetDate",
                        data: "{}",
                        contentType: "application/json; charset=utf-8",
                        dataType: "json",
                        success: function (msg) {
                            alert("1");
                        },
                        complete: function (msg) {
                            alert("2");
                        },
                        error: function (msg) {
                            alert("3");
                        },
                        send: function (msg) {
                            alert("4");
                        },
                        stop: function (msg) {
                            alert("5");
                        },
                        start: function (msg) {
                            alert("6");
                        }
                    });
                    return false;
    Ça empêche ton bouton de faire un postback (c'est ça qui fait que t'as une erreur sur l'appel ajax).

  5. #5
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 391
    Points : 185
    Points
    185
    Par défaut
    Citation Envoyé par youtpout978 Voir le message
    Rajoute un return false à la fin de ta fonction ajax
    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
    $.ajax({
                        type: "POST",
                        url: "Test.aspx/GetDate",
                        data: "{}",
                        contentType: "application/json; charset=utf-8",
                        dataType: "json",
                        success: function (msg) {
                            alert("1");
                        },
                        complete: function (msg) {
                            alert("2");
                        },
                        error: function (msg) {
                            alert("3");
                        },
                        send: function (msg) {
                            alert("4");
                        },
                        stop: function (msg) {
                            alert("5");
                        },
                        start: function (msg) {
                            alert("6");
                        }
                    });
                    return false;
    Ça empêche ton bouton de faire un postback (c'est ça qui fait que t'as une erreur sur l'appel ajax).
    Merci c'était ça

  6. #6
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 065
    Points : 4 229
    Points
    4 229
    Par défaut
    De rien, n'oublie pas de passer ton sujet a résolu.

  7. #7
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 391
    Points : 185
    Points
    185
    Par défaut
    C'est fait

    Au passage, j'ai trouvé une autre solution :

    Il faut ajouter e.preventDefault(); pour que la fonction s'execute avant le postback.

    $("bt1").click(function(e) {
    // This prevents the button from causing a postback, by preventing it's
    "default" action in the browser.
    e.preventDefault();

    // Your $.ajax() stuff here
    });

  8. #8
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 391
    Points : 185
    Points
    185
    Par défaut
    Bonjour =D,

    je reviens avec une autre question liée à la précédente.
    Peut-on envoyer une liste de chaine de caractère au code behind C# avec jQuery.ajax ?

    Pour l'instant je fais ça dans mon .js :

    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
     
    function btnAffectationClick() {
     
        var listeIdOF_Cochés = new Array();
     
        $("#tabG :checkbox:checked").each(function () {
            var idLigne = $(this).attr('id');
            listeIdOF_Cochés.push(idLigne);
        });
     
        $.ajax({
            type: "POST",
            data: "{ liste : "+listeIdOF_Cochés+" }",
            url: "Test.aspx/doAssignation",
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function () {
                alert("OK");
            },
            error: function () {
                alert("BAD");
            }
        });
     
        return false;
    }
    et ça dans mon code behind C# :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    [WebMethod]
            public static void doAssignation(){
     
            }
    Cependant, ça me renvoie 'BAD". Lorsque je ne met pas de données dans mon appel ajax (data : "{}"), ça me renvoi OK. Donc c'est mon passage de données qui ne fonctionne pas.
    Avez vous une idée SVP ?
    Merci d'avance.

  9. #9
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 065
    Points : 4 229
    Points
    4 229
    Par défaut
    Citation Envoyé par paladice Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    [WebMethod]
            public static void doAssignation(){
     
            }
    Cependant, ça me renvoie 'BAD". Lorsque je ne met pas de données dans mon appel ajax (data : "{}"), ça me renvoi OK. Donc c'est mon passage de données qui ne fonctionne pas.
    Avez vous une idée SVP ?
    Merci d'avance.
    Bonjour,
    c'est normal ta méthode doAssignation n'attend aucun paramètre en entré.

    Regarde ce tutoriel il y a une partie sur l'appel de méthode c# avec jquery : http://nico-pyright.developpez.com/t...netajaxmethod/

  10. #10
    Membre habitué
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2009
    Messages
    391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2009
    Messages : 391
    Points : 185
    Points
    185
    Par défaut
    Merci, je vais regarder ça

Discussions similaires

  1. ajax avec asp.net
    Par falifalibe2 dans le forum ASP.NET
    Réponses: 3
    Dernier message: 18/01/2010, 12h14
  2. Comparaison de méthodes de communications AJAX avec ASP.NET
    Par Louis-Guillaume Morand dans le forum ASP.NET
    Réponses: 5
    Dernier message: 13/05/2009, 14h12
  3. Réponses: 1
    Dernier message: 25/07/2007, 15h45
  4. probleme avec asp.net ajax
    Par tarajji dans le forum ASP.NET
    Réponses: 3
    Dernier message: 26/03/2007, 10h43

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