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 :

Le tri sur un gridview ne se fait plus dés que celui-ci est dans un updatePanel


Sujet :

ASP.NET

  1. #1
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Points : 1 978
    Points
    1 978
    Par défaut Le tri sur un gridview ne se fait plus dés que celui-ci est dans un updatePanel
    Bonjour

    tout est dans le titre : j'ai un un gridview sur lequel je peux faire des tris sur (presque) chaque colonne. Cela fonctionne très bien et mes tris sont conformes à mes attentes.

    Mais pour améliorer l'"experience utilisateur " (), je désire le faire par AJAX. je mets donc simplement mon gridview dans un updatePanel, et là, plus rien ne marche. Les requêtes ajax sont bien envoyées, mais la réponse du serveur est vide.

    omet-je quelque chose ?

    Mon tri :
    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
     protected void tri(string critere, string sens)
            {
                if (ViewState["dv"] != null)
                {
                    try
                    {
                        DataTable table = (DataTable)ViewState["dv"];
                        DataView dv = new DataView(table);
     
                        dv.Sort = critere + " " + sens;
                        GridView1.DataSource = dv;
                        GridView1.DataBind();
                        UpdatePanel1.Update();
                    }
                    catch (Exception e)
                    {
     
                        Response.Write("Erreur sur tri : " + e.Message);
                    }
     
                }
            }
    appelé comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
        protected void tarif_tri_desc_Click(object sender, ImageClickEventArgs e)
            {
                tri("tarif", "desc");
            }
    La page :

    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
    <asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional" ChildrenAsTriggers="true" >
                <ContentTemplate>
                    Tarifs disponibles :
                    <br />
     
                    <asp:GridView ID="GridView1" runat="server" AllowSorting="True" AutoGenerateColumns="False"
                        BorderStyle="None" CssClass="comparateur"> 
    <Columns>
     
    (...)
     
    </Columns>
                    </asp:GridView>
                </ContentTemplate>
            </asp:UpdatePanel>
    Je précise : les images sur lesquelles on clique pour avoir le tri (tarif_tri_desc_Click) sont dans les entetes du gridview.
    Un debuggage pas à pas me montre que les méthodes sont convenablement appelées, c'est simplement la réponse qui n'est pas envoyées au navigateur.

    PS : Tout ce beau monde se trouve dans un userControl


    N'oubliez pas de consulter les FAQ ASP et les cours et tutoriels ASP

    " La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
    (J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

    Chuck Norris comprend JC Van Damme.

  2. #2
    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

  3. #3
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Points : 1 978
    Points
    1 978
    Par défaut
    mmm... Je m'aperçois que même avec un simple bouton et <%= DateTime.Now.ToString() %> dans ma page, l'updatePanel ne se rafraîchit pas...

    je viens même de faire, sur le-dit bouton :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
            protected void Button1_Click(object sender, EventArgs e)
            {
                label_test.Text = DateTime.Now.ToString();
            }
    et je n'ai rien dans mon Label_test.

    ... Et aucune exception n'est levée !!

    Merci pour le lien MSDN, je l'avais déjà regardé sans trouvé de réponse.


    N'oubliez pas de consulter les FAQ ASP et les cours et tutoriels ASP

    " La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
    (J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

    Chuck Norris comprend JC Van Damme.

  4. #4
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Points : 1 978
    Points
    1 978
    Par défaut
    Je viens de faire un autre test : j'ai remplacé mon usercontrol par un autre présentant les mêmes méthode et propriétés, mais qui ne fait rien : pas de gridview, donc pas de tri, seule la méthode d'affichage de l'heure est restée : Le résultat est le même, pas de mise à jour de mon Label_test.

    Je me pose donc la question : est-il possible d'utiliser un updatePanel dans un userControl ?


    N'oubliez pas de consulter les FAQ ASP et les cours et tutoriels ASP

    " La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
    (J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

    Chuck Norris comprend JC Van Damme.

  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
    Citation Envoyé par roro06 Voir le message
    Je me pose donc la question : est-il possible d'utiliser un updatePanel dans un userControl ?
    Oui

    Ferme/rouvre VS
    Rebuild
    IIS reset
    Réessaye


  6. #6
    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
    T'aurais pas un autre update panel qui englobe ce fameux user control?

  7. #7
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Points : 1 978
    Points
    1 978
    Par défaut
    Ferme/rouvre VS
    Rebuild
    IIS reset
    Réessaye
    fait --> idem

    T'aurais pas un autre update panel qui englobe ce fameux user control?
    Non.
    Par contre mon userControl "test" fonctionne correctement dans une page vierge. C'est donc l'environnement de la page "contenante" qui pêche. Je vais fouiller par là, mais sans trop savoir où chercher .


    N'oubliez pas de consulter les FAQ ASP et les cours et tutoriels ASP

    " La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
    (J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

    Chuck Norris comprend JC Van Damme.

  8. #8
    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
    Citation Envoyé par roro06 Voir le message
    fait --> idem

    Non.
    Par contre mon userControl "test" fonctionne correctement dans une page vierge. C'est donc l'environnement de la page "contenante" qui pêche. Je vais fouiller par là, mais sans trop savoir où chercher .
    Pas d'update panel dans la master page?

  9. #9
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Points : 1 978
    Points
    1 978
    Par défaut
    Pas d'update panel dans la master page?
    Non plus


    N'oubliez pas de consulter les FAQ ASP et les cours et tutoriels ASP

    " La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
    (J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

    Chuck Norris comprend JC Van Damme.

  10. #10
    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
    Essaye d'appeler à la main la méthode Update de ton update panel à la fin du tri

  11. #11
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Points : 1 978
    Points
    1 978
    Par défaut
    Je l'avais fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     GridView1.DataBind();
    UpdatePanel1.Update();


    N'oubliez pas de consulter les FAQ ASP et les cours et tutoriels ASP

    " La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
    (J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

    Chuck Norris comprend JC Van Damme.

  12. #12
    Modérateur
    Avatar de roro06
    Profil pro
    Inscrit en
    Avril 2007
    Messages
    1 480
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 480
    Points : 1 978
    Points
    1 978
    Par défaut
    Bon, je viens de trouver le pourquoi du comment : un response.flush dans le page_load de la page :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     protected void Page_Load(object sender, EventArgs e)
            {
               if (IsPostBack)
                {
                 Response.Flush();
    ...
    C'est une idée ... idiote . Ca marche beaucoup mieux, maintenant.

    Merci lutecefalco pour le coup de main


    N'oubliez pas de consulter les FAQ ASP et les cours et tutoriels ASP

    " La vie c'est quelque chose de très fort et de très beau.... La vie appartient a tous les vivants. It's both a dream and a feeling. C'est être ce que nous ne sommes pas sans le rester. La vie c'est mourir aussi....Et mourir c'est vraiment strong...c'est rester en vie au delà de la mort...Tous ceux qui sont morts n'ignorent pas de le savoir."
    (J.C. VanDamme, humoriste et philosophe belge . A moins que ce ne soit l'inverse ...)

    Chuck Norris comprend JC Van Damme.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 15/12/2009, 17h45
  2. Tri sur un GridView
    Par markob85 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 30/04/2009, 10h40
  3. [ASP.NET 2.0][C#] Tri sur un GridView avec actions
    Par Wishmaster dans le forum ASP.NET
    Réponses: 3
    Dernier message: 13/09/2007, 14h44
  4. [VB.NET] Problème de tri sur Datagrid/gridview multilingue
    Par crimsonPhantom dans le forum ASP.NET
    Réponses: 4
    Dernier message: 16/03/2006, 22h41
  5. La molette ne fait plus ce que je veux avec Firefox
    Par ggnore dans le forum Applications et environnements graphiques
    Réponses: 5
    Dernier message: 21/02/2006, 16h33

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