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#/JS] Comment appeler un �v�nement code behind en javascript avec framework 1.1


Sujet :

ASP.NET

  1. #1
    Nouveau membre du Club
    Inscrit en
    Juin 2008
    Messages
    7
    D�tails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 7
    Par d�faut [C#/JS] Comment appeler un �v�nement code behind en javascript avec framework 1.1
    Bonjour,

    Voil� mon pb, je voudrai d�clencher dans mes m�thodes javascript des �v�nements contenus dans le code behind (C#/VB.NET).
    Un ancien post parle de cela cependant je dois pr�ciser que je suis sur le Framework 1.1 et que Ajax n'existe pas dans cet environnement, donc est ce que c'est possible quand m�me et si oui comment fait-on ?

    Merci par avance parce que je rame dur l�.

    Rems

  2. #2
    Membre chevronn�
    Profil pro
    Inscrit en
    Mars 2004
    Messages
    581
    D�tails du profil
    Informations personnelles :
    �ge : 44
    Localisation : Belgique

    Informations forums :
    Inscription : Mars 2004
    Messages : 581
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
     
    <% NomControle.Event %>
    C'est pas comme ca ? Dans ton code javascript.

    Fix

  3. #3
    Nouveau membre du Club
    Inscrit en
    Juin 2008
    Messages
    7
    D�tails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 7
    Par d�faut
    Citation Envoy� par fix105 Voir le message
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
     
    <% NomControle.Event %>
    C'est pas comme ca ? Dans ton code javascript.

    Fix
    Dans le javascript tu mets du code comme �a ? je ne comprend pas ce que tu veux me dire l� ! les balises <% %> ne sont pas reconnues en javascript et �a me parait un peu facile pour d�clencher un �v�nement c�t� serveur VB.NET (code behind) non asp.net via JS. Je ne suis pas contre une petite explication l�.

    Merci.

  4. #4
    Membre extr�mement actif
    Profil pro
    Inscrit en
    Ao�t 2005
    Messages
    1 240
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2005
    Messages : 1 240
    Par d�faut
    pourquoi ce ne serait pas possible de faire de l'ajax avec le framework 1.1. ajax c'est du javascript donc tu peux. apr�s peut etre que asp.net ajax ne fonctionne pas en 1.1. mais ca c'est un autre probl�me.
    je pense qu'il faut que tu le fasses � la mano. ou mate sur le net des framework en 1.1.
    mais pourquoi tu veux declencher des evenements serveurs depuis ton javascript si tu penses qu'ajax ne fonctionne pas en 1.1?

  5. #5
    Nouveau membre du Club
    Inscrit en
    Juin 2008
    Messages
    7
    D�tails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 7
    Par d�faut
    Citation Envoy� par rattlehead Voir le message
    pourquoi ce ne serait pas possible de faire de l'ajax avec le framework 1.1. ajax c'est du javascript donc tu peux. apr�s peut etre que asp.net ajax ne fonctionne pas en 1.1. mais ca c'est un autre probl�me.
    je pense qu'il faut que tu le fasses � la mano. ou mate sur le net des framework en 1.1.
    mais pourquoi tu veux declencher des evenements serveurs depuis ton javascript si tu penses qu'ajax ne fonctionne pas en 1.1?
    Non tu as raison, je vais m'expliquer, dans mon projet je ne dois pas importer de nouvelles dll et comme l'ajax n'est pas int�gr� directement dans VS 2003 je dois me le frapper � la mano donc avec le XHR je crois. Maintenant je ne vois pas comment peut-on faire pour d�clencher un event d'un objet instanci� dans le code behind qui existe dans le code comme ceci :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    Grille_Click(byref sender, byval e as System.EventArgs)
    et que je veux donc appeler dans mon javascript un peu comme �a :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    function CallEvent()
    {
      // je récupère l'objet de ma page
     // je déclenche son évènement Click (par exemple) en asynchrone
    }
    Voil� un peu ce que je veux faire.

    Est ce que maintenant c'est possible tout �a, l� je ne sais pas. Est ce que tu as une solution ?

    Merci.

  6. #6
    Membre extr�mement actif
    Profil pro
    Inscrit en
    Ao�t 2005
    Messages
    1 240
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2005
    Messages : 1 240
    Par d�faut
    mate du cot� de xmlhttprequest. ou bien une bonne librairie ajax pour t'inspirer du truc.
    sinon tu fais un postback. bon tu as un aller retour serveur mais c'est plus simple.

  7. #7
    Nouveau membre du Club
    Inscrit en
    Juin 2008
    Messages
    7
    D�tails du profil
    Informations forums :
    Inscription : Juin 2008
    Messages : 7
    Par d�faut
    Citation Envoy� par rattlehead Voir le message
    mate du cot� de xmlhttprequest. ou bien une bonne librairie ajax pour t'inspirer du truc.
    sinon tu fais un postback. bon tu as un aller retour serveur mais c'est plus simple.
    Alors non je ne veux pas de postback, mais j'ai trouv� une solution donc je vais la proposer pour les prochaines fois si quelqu'un cherche la m�me chose.

    Donc je veux dans le javascript d�clencher un �v�nement c�t� vb.net donc dans mon javascript je d�clare un objet XHR :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    // on créé l'objet XHR
    var xhr_object = null;
     
    if(window.XMLHttpRequest) // Firefox
       xhr_object = new XMLHttpRequest();
    else if(window.ActiveXObject) // Internet Explorer
       xhr_object = new ActiveXObject("Microsoft.XMLHTTP");
    else { // XMLHttpRequest non supporté par le navigateur
       alert("Votre navigateur ne supporte pas les objets XMLHTTPRequest...");
    return; }
    puis dans un fonction javascript qui est mapp� � l'�v�nement mousedown de ma grid j'envoie une cl� par la m�thode post � la page voulue :

    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
     
    // ma page
    	var page = "WebForm1.aspx";
    // envoie par la méthode post
    	 xhr_object.open("POST", page, false);
     
       xhr_object.onreadystatechange = function() {
     
          if(xhr_object.readyState == 4) // fin du traitement
     
    // je mets dans ma textbox un message de réussite
          textbox.value = textbox.value + " event mousedown déclenché";
     
             //eval(xhr_object.responseText);
       }
     
     
       xhr_object.setRequestHeader("Content-type","application/x-www-form-urlencoded");
    // ici j'envoie la clé
       var data = "mousedown=1";
        xhr_object.send(data);
    //
    j'ai volontairement fait du synchrone pour avoir un enchainement d'�v�nement coh�rent (mousedown avant click et avant mouseup,...).

    Donc par la magie du XmlHttpRequest je r�cup�re dans ma page au niveau du page load les cl�s envoy�s par post � la page :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     
    ...
    ' si j'ai des clés envoyées par post
    If Page.Request.Form.Keys.Count > 0 Then
    ' j'appelle ma méthode interne avec la clé postée
                SendEvent(Page.Request.Form.AllKeys)
            End If
    ...
     
    End sub
    Ensuite je fais le traitement dans ma m�thode SendEvent

    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
     
    Private Sub SendEvent(ByVal keys As String())
    ' je regarde la nature de la clé
            Select Case keys(0)
                Case "mousedown"
    ' si mousedown en clé dans la post alors je déclenche mon évènement ' mousedown interne
                    RaiseEvent _MouseDown(Me, Nothing)
                Case "mouseup"
    ' si mouseup en clé dans la post alors je déclenche mon évènement mouseup interne
                    RaiseEvent _MouseUp(Me, Nothing)
                Case "click"
    ' si click en clé dans la post alors je déclenche mon évènement click interne
                    RaiseEvent _Click(Me, Nothing)
                Case Else
                    Return
            End Select
        End Sub
    Et voil� le tour est jou�, lorsque je clique sur ma grid, je n'ai pas de postback et en plus mes �v�nements internes sont lanc�s.

    Voil� merci encore.

    A bient�t

    Rems

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 20
    Dernier message: 16/10/2009, 16h51
  2. [DynamicResource] Comment l'affecter c�t� code-behind C# ?
    Par despeludo dans le forum Windows Presentation Foundation
    R�ponses: 1
    Dernier message: 17/09/2008, 13h41
  3. R�ponses: 5
    Dernier message: 14/12/2007, 15h51
  4. R�ponses: 1
    Dernier message: 24/05/2006, 15h08

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