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#][2.0] Client Call back


Sujet :

ASP.NET

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 21
    Points : 17
    Points
    17
    Par défaut [C#][2.0] Client Call back
    Bonjour,

    Tous les exemples que je trouve on du être fait avec des version beta du .NET V2 car il ne fonctionne pas

    car la signature attendu est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    void RaiseCallbackEvent ( string eventArgument )
    etcelle des exemples est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string RaiseCallbackEvent ( string eventArgument )
    donc si quelqu'un a un exemple qui fonctionne j'aimerais bien la voir

    Merci

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    129
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2004
    Messages : 129
    Points : 103
    Points
    103
    Par défaut
    Salut !

    En fait le problème c'est que la version avant le 20 juillet 2005 et celle après ne fonctionne pas de la même façon.

    Voici la façon dont moi j'implante les callback dans mes pages.

    1- tu dois ajouter un implement pour le icallbackEventhandler. Une fois que tu as fais ça et fait ENTER une fonction et une procédure c'est ajouté à ton code. La function c'est celle qui va retourner au code JS tes valeur et la procédure c'est celle qui recoit les données tu code JS.

    2- Tu déclare ensuite 2 variable Globale de type string par exemple stringCallback et stringJS.

    3- Dans le page_load de ta page tu fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    stringCallback = Me.ClientScript.GetCallbackEventReference(Me, "Commande", "CallBackHandler", "obContext", True)
    "Commande" c'est le nom de ta string Javascript que tu veux envoyer au serveur.
    "CallBackHandler" c'est le nom de la function JS qui va recevoir l'information du serveur
    "obContext" c'est le nom de ton objet java qui te permet de déterminer par exemple quel callback à été appelé.
    Le dernier paramètre c'est pour le mode asynchrone. Si tu n'utilise qu'une string de callback tu peux le mettre à faux. Parcontre si tu utiliser plusieur strong de callback elle doit être à vrai.

    4- Dans la procédure RaiseCallbackEvent ajouter tu ajoutes le code:
    stringJS= eventArgument

    5- Puis dans la fonction GetCallbackResult tu mets un return avec le résultat que tu veux retourner. Bien sûre si tu as plusieur Callback il faut utiliser un système pour déterminer quel résultat doit être retourné. Moi ce que je fais c'est que chaque string de callback commence pas un numéro. Ensuite dans ma fonction GetCallbackResult selon le numéro en début de ma string je retourne le résultat voulu.

    6- au niveau du code JS il y a 2 chose à faire. Pour appeler un callback tu fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
        var Commande;
        var obContext= new Object();
        Commande= "1:" + mavaleur;    
        obContext.CommandName = "Callback1";
        <%=stringCallback%>
    Ensuite pour le retour de l'information tu fais:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    function CallBackHandlerCompte(valeur, context)
    { 
     
      switch (context.CommandName)
      {
        case "Callback1":
             Affiche(valeur);
            break;
      }
    Le mieux c'est de l'essayer et si tu as des questions ne te gêne pas.

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 21
    Points : 17
    Points
    17
    Par défaut
    Je vais essayer aujourd'hui
    Merci

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 21
    Points : 17
    Points
    17
    Par défaut
    Bon voici le test que j'ais fait et qui fonctionne :

    test.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
     
    <%@ Page Language="C#" AutoEventWireup="true" CodeFile="test.aspx.cs" Inherits="test" %>
     
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
     
    <html xmlns="http://www.w3.org/1999/xhtml" >
    <head runat="server">
        <title>Untitled Page</title>
        <script language=javascript>
            function ReceiveServerData(rvalue, context)
            {
                document.getElementById("Text1").value = rvalue;
            }
     
        </script>
    </head>
    <body>
        <form id="form1" runat="server">
        <div>
            <input id="Text1" type="text" />
            <input id="Button1" type="button" value="button" onclick="CallServer('Test00','')" />
        </div>
        </form>
    </body>
    </html>
    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
     
    using System;
    using System.Data;
    using System.Configuration;
    using System.Collections;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
     
    public partial class test : System.Web.UI.Page, ICallbackEventHandler
    {
        public string eventArgument;
     
        protected void Page_Load(object sender, EventArgs e)
        {
            String cbReference = Page.ClientScript.GetCallbackEventReference(this, "arg",
                "ReceiveServerData", "context");
     
            String callbackScript = "function CallServer(arg, context) {" +
                cbReference + "; }";
     
            Page.ClientScript.RegisterClientScriptBlock(this.GetType(),
                "CallServer", callbackScript, true);
     
        }
     
        public string GetCallbackResult()
        {
            return "Test de moi : " + eventArgument;
        }
     
        public void RaiseCallbackEvent(string eventArgument)
        {
            this.eventArgument = eventArgument;
        }
     
    }
    si ca peut aider

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

Discussions similaires

  1. Call back xml et vba
    Par CODYCO dans le forum Macros et VBA Excel
    Réponses: 9
    Dernier message: 09/12/2011, 08h40
  2. call back non appelé
    Par yuriyan dans le forum Silverlight
    Réponses: 1
    Dernier message: 01/09/2011, 16h22
  3. GTK call back
    Par sizixe dans le forum GTK+ avec C & C++
    Réponses: 1
    Dernier message: 30/04/2010, 08h52
  4. Réponses: 2
    Dernier message: 12/09/2007, 11h23
  5. [PHP-JS] call back php
    Par silver.spike dans le forum Langage
    Réponses: 1
    Dernier message: 09/03/2007, 16h36

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