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 :

Créer d'un GridView avec possibilité de tri


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mars 2008
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mars 2008
    Messages : 161
    Par défaut Créer d'un GridView avec possibilité de tri
    Bonjour,

    j'ai créé un GridView que je souhaiterais trier en utilisant l'événement Sorting du GridView. Voici le code ecrit qui ne fonctionne pas.

    Protected Sub GridView1_Sorting(ByVal sender As Object, ByVal e As System.Web.UI.WebControls.GridViewSortEventArgs) Handles GridView1.Sorting
    If (e.SortDirection = SortDirection.Ascending) Then

    BindData((e.SortExpression).ToString() + " desc")

    Else

    BindData((e.SortExpression).ToString() + " asc")
    End If

    End Sub

    Private Sub BindData(ByVal SortField As String)

    Dim DS As New Data.DataSet
    Dim LaReKette as string=" Select * From Uilisateur"
    Dim MonDA As New Data.SqlClient.SqlDataAdapter(LaReKette, cnn)
    Dim Source As New Data.DataView

    MonDA.Fill(DS)
    Source = DS.Tables(0).DefaultView
    Source.Sort = SortField
    GridView1.DataSource = Source
    GridView1.DataBind()

    End Sub

    Je vous prie de me donner un précieux coup de main

  2. #2
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Désolé de ne pas t'apporter de réponse à ton problème, mais plutôt une question :
    pourquoi tu reprogramme ce que fais déjà un GridView ?

    Si je comprends ton code tu veux qu'au premier click il trie la colonne dans un sens puis ua deuxième click il trie la colonne dans l'autre sens.

    Mais le GridView fait déjà ça tout seul, comme un grand.

    Vois tu ce que je veux dire ?
    Ou alors je passe à côté d'une truc important dans ton post.

  3. #3
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mars 2008
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mars 2008
    Messages : 161
    Par défaut
    Bonjour,

    C'est tout simplement parce que je rempli mon SqlDataSource par code à l'aide d'une requete qui varie en fonction de l'objet selectionnné. Et j'ai mis le AutoGenerateColumn à Faux. Dès cet instant les tris automatiques et la pagination automatique ne fonctionnent plus. Il faut donc les programmer.

    C'est juste pour ça que je dois écrire ces codes.



    Merci d'avance pour votre aide

  4. #4
    Membre expérimenté
    Avatar de zooffy
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Août 2004
    Messages
    3 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Bâtiment

    Informations forums :
    Inscription : Août 2004
    Messages : 3 895
    Par défaut
    Ben en fait, non.

    Je fais mais GridView également comme toi, avec un SqlDataSource dynamique et ça marche bien. Pareil pour les colonne, je les fabrique toutes "à la main" par CodeBehind, comme ça je maitrise tout d'un bout à l'autre. Bon ok, je crencontre aprfois des problèmes pour récupérer les infos, mais à la fin je m'en sort. Mon souci actuel se base sur les DataKeys.

    Pour revenir à ton soucis, je pense que tu dois oublié deux ou trois détails (que j'ai mis du temps à trouver moi même).

    Pourrais poster ton code tout entier (HTML et CodeBehind), histoire qu'on valide les étapes ?

  5. #5
    Membre du Club
    Inscrit en
    Juillet 2008
    Messages
    7
    Détails du profil
    Informations forums :
    Inscription : Juillet 2008
    Messages : 7
    Par défaut
    En autogeneratecolumns = false, tu dois binder tes colonnes à la main (code behind ou HTML), et rajouter un ordre de tri. J'ai fait la même chose 100% HTML, voici à quoi ressemble mon code :

    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
    29
    30
    31
     
    <asp:GridView ID="GridView1" runat="server" AllowPaging="True" Width="630px"
    BackColor="White" BorderColor="#999999" BorderStyle="None" BorderWidth="1px"
    CellPadding="3" DataSourceID="SqlDataSource1" Font-Names="arial" Font-Size="12px"
    GridLines="Vertical" AutoGenerateColumns="false" PagerSettings-PageButtonCount="15" 
    AllowSorting="True" PageSize="15" AutoGenerateEditButton="true" DataKeyNames="Nom">
    <FooterStyle BackColor="#CCCCCC" ForeColor="Black" />
    <RowStyle BackColor="#EEEEEE" ForeColor="Black" />
    <PagerStyle BackColor="#87ceeb" ForeColor="Black" HorizontalAlign="Center" />
    <SelectedRowStyle BackColor="#008A8C" Font-Bold="True" ForeColor="White" />
    <HeaderStyle BackColor="#87ceeb" Font-Bold="True" ForeColor="White" />
    <AlternatingRowStyle BackColor="Gainsboro" />
    <Columns> 
    <asp:BoundField DataField="Nom" HeaderText="Nom" SortExpression="Nom" ReadOnly=true>
    <ItemStyle Width= "150px" />
    </asp:boundfield>
    <asp:BoundField DataField="Prénom" HeaderText="Prénom" SortExpression="Prénom"> 
    <ItemStyle Width= "110px" />
    </asp:boundfield>
    <asp:BoundField DataField="Tel" HeaderText="Téléphone" SortExpression="Tel"> 
    <ItemStyle Width= "110px" />
    </asp:boundfield>
    <asp:BoundField DataField="Top" HeaderText="Top" SortExpression="Top"> 
    <ItemStyle Width= "30px" />
    </asp:boundfield>
    <asp:BoundField DataField="Qualité" HeaderText="Qualité" SortExpression="Qualité"> 
    <ItemStyle Width= "230px" />
    </asp:boundfield>
    </Columns>
    <PagerSettings Mode="NumericFirstLast" />
    </asp:GridView>
    Note les sortexpression, qui doivent resoudre ton dilemne

  6. #6
    Membre éprouvé
    Homme Profil pro
    Inscrit en
    Mars 2008
    Messages
    161
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Mars 2008
    Messages : 161
    Par défaut
    Ok
    Merci beaucoup pour ton coup de main

Discussions similaires

  1. GridView avec pagination et tri
    Par dany13 dans le forum VB.NET
    Réponses: 2
    Dernier message: 17/03/2010, 08h27
  2. Tri gridView avec callBack
    Par sunvialley dans le forum ASP.NET
    Réponses: 5
    Dernier message: 03/09/2008, 10h52
  3. Réponses: 4
    Dernier message: 14/12/2007, 09h57
  4. [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
  5. Tri gridview avec Template
    Par Prodige2020 dans le forum ASP.NET
    Réponses: 4
    Dernier message: 17/08/2007, 11h15

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