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 :

Faire un async postback lors d'un lcik sur un div/panel


Sujet :

ASP.NET Ajax

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé

    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 448
    Par défaut Faire un async postback lors d'un lcik sur un div/panel
    Bonjour.

    J'aimerais que lorsqu'un utilisateur de mon site clique sur certains div(ça peut aussi être des asp:Panel si besoin est), cela déclenche une action résultant dans la mise à jour d'un updatepanel.

    Il faudrait donc que ce div/panel fasse un async postback mais je ne trouve pas comment faire (par exemple RegisterAsyncPostBackControl n'accepte pas les div/panel en paramètre).

    Pourriez-vous me dire comment faire, svp ?

  2. #2
    Membre averti
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Avril 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Avril 2007
    Messages : 28
    Par défaut
    Citation Envoyé par Sergejack Voir le message
    Bonjour.

    J'aimerais que lorsqu'un utilisateur de mon site clique sur certains div(ça peut aussi être des aspanel si besoin est), cela déclenche une action résultant dans la mise à jour d'un updatepanel.

    Il faudrait donc que ce div/panel fasse un async postback mais je ne trouve pas comment faire (par exemple RegisterAsyncPostBackControl n'accepte pas les div/panel en paramètre).

    Pourriez-vous me dire comment faire, svp ?
    Tu peux essayer cela en utilisant un XMLHTTPRequest pour faire un appel ansychrone

  3. #3
    Membre éprouvé

    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 448
    Par défaut
    Citation Envoyé par klr54000 Voir le message
    Tu peux essayer cela en utilisant un XMLHTTPRequest pour faire un appel ansychrone
    Est-ce que vous pouvez développer un peu plus ?

  4. #4
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Par défaut
    Une solution possible est de passer par la méthode GetPostBackEventRefence de ton ScriptManager.

    Regarde sur la MSDN

  5. #5
    Membre éprouvé

    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 448
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 448
    Par défaut
    Citation Envoyé par calagan99 Voir le message
    Une solution possible est de passer par la méthode GetPostBackEventRefence de ton ScriptManager.

    Regarde sur la MSDN

    Ça ne me permettra pas de faire le message en asynchrone, si ?


    @klr54000: Houla ! Hardcore XD J'aimerais faire plus simple si possible.

  6. #6
    Membre averti
    Homme Profil pro
    Consultant ERP
    Inscrit en
    Avril 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : Consultant ERP

    Informations forums :
    Inscription : Avril 2007
    Messages : 28
    Par défaut
    Voila un exemple de rafraichissement asynchrone pour remplir une Combobox à partir d'une autre Combobox :

    La fonction javascript :
    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
    function RefreshCombobox(f,MonId,IdMaj)
               {
                 var index = f.elements[MonId].selectedIndex;
     
                 if(index >= 0) {
                    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... Mise à jour impossible.");
                      return;
                    }
     
                    xhr_object.open("POST", "GestionCombobox.aspx", true);
     
                    xhr_object.onreadystatechange = function() {
                      if(xhr_object.readyState == 4)
                        eval(xhr_object.responseText);
                    }
     
                    xhr_object.setRequestHeader("Content-type", "application/x-www-form-urlencoded;charset=ISO-8859-1");
                    var data = "Parent=Statistiques&CB="+IdMaj+"&client="+escape(f.elements[MonId].options[index].value);
                    xhr_object.send(data);
                 }
               }
    La page .aspx :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <asp:DropDownList onchange="RefreshCombobox(this.form,this.id,'CBPortefeuille')" ID="CBPole" runat="server" Width="208px">
    <asp:DropDownList ID="CBPortefeuille" runat="server" Width="208px"/>
    Dans la page GestionCombobox.aspx vous réalisez le traitement que vous souhaitez (dans mon cas remplissage de la combobox à partir de la BD).

    Ce rafraîchissement peut être appliqué à votre cas en y mettant un évenement onclick() sur votre Panel

    Voila j'espère que c'est un peu plus clair

Discussions similaires

  1. Réponses: 5
    Dernier message: 26/06/2013, 13h45
  2. double postback lors d'un clic sur le bouton
    Par Wnejla dans le forum ASP.NET
    Réponses: 6
    Dernier message: 29/03/2013, 02h32
  3. Faire scroller la barre défilante quand on est sur un div créé
    Par kelaan dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 24/01/2011, 20h26
  4. faire réagir un textarea lors de l'appui sur entrée
    Par keumlebarbare dans le forum Général JavaScript
    Réponses: 8
    Dernier message: 22/10/2006, 17h12
  5. Réponses: 4
    Dernier message: 11/07/2006, 10h41

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