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 :

[UpdatePanel] Postback sans refresh


Sujet :

ASP.NET

  1. #1
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut [UpdatePanel] Postback sans refresh
    Désolé pour le titre, je voyais vraiment pas comment résumer ça en quelques mots...

    J'ai une page avec, entre autres, les éléments suivants (je simplifie un peu) :
    - Un UpdatePanel (UP1) qui contient un TextBox
    - Un autre UpdatePanel (UP2) qui contient un TreeView et un bouton

    Quand je valide la sélection du TreeView en cliquant sur le bouton (postback de UP2), je rafraichis UP1 pour indiquer dans la TextBox le nombre de noeuds sélectionnés.

    Mon problème est le suivant :
    Quand je fais un postback de UP2, le serveur me renvoie tout le contenu de UP2, y compris le TreeView. Jusqu'ici, normal... sauf que ça ne m'arrange pas du tout ! Le TreeView peut avoir de nombreux noeuds (généralement quelques dizaines, mais ça peut aller jusqu'à quelques centaines), et ça fait pas mal de données à transférer, un peu trop pour une requête AJAX... (en regardant avec Fiddler, je récupère environ 300ko pour un TreeView "moyen")

    Or je n'ai absolument pas besoin de rafraichir ce TreeView, puisque le serveur ne modifie pas la sélection... du point de vue du client, il est inchangé. Je voudrais seulement envoyer au serveur le nouvel état du TreeView, mais sans le rafraichir sur la page. Il n'y a que UP1 que j'ai besoin de rafraichir.

    Est-ce que c'est possible ? Quelqu'un aurait une idée pour le faire ?
    Si c'est pas clair, n'hésitez pas à me demander des précisions...

    Merci d'avance !

  2. #2
    Membre expérimenté Avatar de Arthis
    Profil pro
    Inscrit en
    Octobre 2003
    Messages
    1 265
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : Italie

    Informations forums :
    Inscription : Octobre 2003
    Messages : 1 265
    Points : 1 352
    Points
    1 352
    Par défaut
    Je ne suis pas un specialiste de ce genre de chose...

    Mais ce pourrait il que tu declare ton treeview a enableviewstate=false pour ne pas le recupérer lors du postback et par contre lui affilier une fonction javascript qui te mettrait la donnée qui t'interesse dans un textbox en mode hidden que lui tu recupererais...

    C'est une idée, et cela reste tres théorique je dois dire... Mais bon pour une fois que tu demandes quelque chose, javais envie de participer

  3. #3
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    A partir du moment où ton TreeView est dans ton UpdatePanel, il sera renvoyé au client.
    Je vois pas trop l'intérêt de UP2 là

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Merci pour vos réponses

    Citation Envoyé par Arthis Voir le message
    Mais ce pourrait il que tu declare ton treeview a enableviewstate=false pour ne pas le recupérer lors du postback et par contre lui affilier une fonction javascript qui te mettrait la donnée qui t'interesse dans un textbox en mode hidden que lui tu recupererais...
    Ca me plairait bien, mais... justement, j'ai besoin du viewstate pour récupérer l'état des noeuds sur le serveur. De toutes façons, vu qu'un TreeView n'existe pas en tant qu'élément HTML, il est rendu avec des tables imbriquées (). Si bien qu'il n'y a pas vraiment de moyen de récupérer en Javascript les noeuds qui sont cochés...
    D'ailleurs, j'ai testé en mettant EnableViewState = false, ça me fait une erreur d'exécution javascript lors du postback

    Citation Envoyé par lutecefalco Voir le message
    Je vois pas trop l'intérêt de UP2 là
    C'est parce que j'ai un peu trop simplifié en présentant le problème...
    En fait, UP2 est dans un ASPxPopupControl (contrôle DevExpress qui fait un popup sur la page sous forme de DIV). Ma TextBox dans UP1 est en réalité un ASPxEditButton (textbox avec bouton "..."). Quand je clique sur le bouton "...", j'affiche le popup, qui me présente la liste des noeuds. Je valide mon choix avec le bouton, ce qui ferme le popup et provoque le postback UP2. Côté serveur, je mets dans la textBox de UP1 le nombre de noeuds cochés, et je mets à jour UP1 avec Update.

    Bref, mon problème est surtout que j'aimerais ne pas renvoyer au client le contenu de UP2, vu que rien n'a changé dedans. Parce que là mon truc met trop longtemps à réagir, c'est quasiment inutilisable...

  5. #5
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Points : 8 734
    Points
    8 734
    Par défaut
    Faut pas le mettre dans un UP

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Citation Envoyé par lutecefalco Voir le message
    Faut pas le mettre dans un UP
    Le TreeView tu veux dire ? Dans ce cas je vais rafraichir toute la page, c'est pas ce que je veux

Discussions similaires

  1. Autoriser un postback sans validation
    Par JPDANGERS dans le forum ASP.NET
    Réponses: 2
    Dernier message: 02/02/2010, 18h00
  2. Javascript Postback sans validation du formulaire
    Par phfle1 dans le forum ASP.NET
    Réponses: 2
    Dernier message: 16/09/2008, 22h32
  3. popup et transmission sans refresh
    Par KiranoO dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 10/06/2008, 09h27
  4. modifier propriété composant sans refresh de la page
    Par dumser1 dans le forum Général JavaScript
    Réponses: 20
    Dernier message: 30/04/2008, 09h23
  5. Réponses: 7
    Dernier message: 21/03/2006, 23h01

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