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 :

Gridview sorting ou paging sans PostBack


Sujet :

ASP.NET

  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 69
    Par défaut Gridview sorting ou paging sans PostBack
    Bonjour,

    Je cherche une manière de réaliser un tri ou un paging sur un GridView sans faire de PostBack sur la page principale.

    Actuellement, j'ai déclaré un gridview ainsi que toutes les colonnes dans un fichier aspx, et je réalise tout le reste de mon traitement dans le code behind (DataBind d'une DataTable sur ma GridView...).

    Je pense que je ne peux pas utiliser les attributs tels que AllowPaging=true, sinon ma page se rafraichit... Il faudrait que je réaliser les tâches de tri ou de paging moi même?

  2. #2
    Membre éclairé Avatar de DeWaRs
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Décembre 2006
    Messages
    291
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 291
    Par défaut
    Hello,

    Un updatepannel ne fonctionnerait pas dans ton cas ?

    DeWaRs

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 69
    Par défaut
    Je viens d'ajouter un UpdatePanel, j'ai ajouté un "AllowPaging=true" dans ma GridView mais j'ai toujours un PostBack quand je change de page (et ça ne me change pas de page). En mettant le curseur sur la page 2 par ex, je vois que le lien associé est qqch du genre "__doPostBack....".

  4. #4
    Membre éprouvé
    Avatar de Pelote2012
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2008
    Messages
    925
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Haute Vienne (Limousin)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mars 2008
    Messages : 925
    Billets dans le blog
    2
    Par défaut
    Avec un updatepanel ça marche (je l'ai déjà fait)
    Par contre comme ton gridview est un objet server, il fait des postback sauf si tu lui interdis, mais dans ce cas tu fais comment pour faire ton tri ... car toutes les données du gridview ne sont pas envoyé dans ta page et en plus tu devrais faire le tri manuellement en javascript sous réserve que tu puisse le faire.
    Avec un updatepanel autour de ton gridview, tu va empêcher à ce que toute ta page se rafraîchisse.
    D'ailleurs c'est l'intér^t d'un gridview c'est qu'il gère nativement ces fonctionnalité
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <asp:GridView ID="grdArticles" runat="server" AutoGenerateColumns="False" AllowSorting="True"
                            EmptyDataText="Pas d'articles" Width="100%" EnableSortingAndPagingCallbacks="True"
                            PagerSettings-Visible="true">
                            <RowStyle CssClass="Ligne" />
                            <Columns>
                                <asp:TemplateField HeaderText="Constructeur" InsertVisible="False" SortExpression="CON_LIBelle"
                                    HeaderStyle-Width="150px">
                                    <ItemTemplate>
                                        <asp:Label ID="l1" runat="server" Text='<%# Bind("CON_LIBelle") %>'></asp:Label>
                                    </ItemTemplate>
                                </asp:TemplateField>
    ....
    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
     Protected Sub grdArticles_PageIndexChanging(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewPageEventArgs) Handles grdArticles.PageIndexChanging
            Try
     
                grdArticles.DataSource = dtvArticles
                AddFiltre()
                grdArticles.PageIndex = e.NewPageIndex
     
                grdArticles.DataBind()
     
            Catch ex As Exception
                My.Log.WriteException(ex)
            End Try
        End Sub
     
     
        Protected Sub grdArticles_Sorting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewSortEventArgs) Handles grdArticles.Sorting
            Try
                dtvArticles.Sort = e.SortExpression
                AddFiltre() 'enregistre en cache les tri
                grdArticles.DataSource = dtvArticles
     
                grdArticles.DataBind()
            Catch ex As Exception
                My.Log.WriteException(ex)
            End Try
        End Sub
    Peux-tu nous faire voir un peu de code et nous expliquer ton problème de départ, stp ?

  5. #5
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Avril 2011
    Messages
    69
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2011
    Messages : 69
    Par défaut
    Merci BROWNY pour ta réponse.

    J'ai finalement utilisé une <table> dans un <asp:Repeater> et utilisé le plugin tablesorter (http://tablesorter.com/docs/).

    Mais c'est aussi possible d'utiliser un GridView en l'empêchant de faire un PostBack. On peut y appliquer du tri et de la pagination en utilisant des ViewState et les évènements onSorting et onPaging de la GridView (un collègue me l'a montré).

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

Discussions similaires

  1. [Frames] un lien vers une page de Frames vers une page sans
    Par jamesleouf dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 23/09/2005, 18h25
  2. Déplacement dans une page sans recharge
    Par EpOnYmE187 dans le forum Général JavaScript
    Réponses: 7
    Dernier message: 30/08/2005, 16h17
  3. largeur de la page web - mise en page sans scroll
    Par Pepito dans le forum Webdesign & Ergonomie
    Réponses: 5
    Dernier message: 24/07/2005, 01h27
  4. Réponses: 2
    Dernier message: 13/05/2005, 15h20
  5. Réponses: 6
    Dernier message: 27/05/2004, 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