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 :

Gestion de l'évenement sorting d'un gridview en code behind


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    526
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 526
    Par défaut Gestion de l'évenement sorting d'un gridview en code behind
    Bonjour,

    J'ai un gridview que je crée dynamiquement dans mon code behind dans mon page_load.
    J'ai appliqué les propriétés de tri automatique sur celui-ci, mais lorsque je clic sur une colonne, cela m'ouvre une boite d'erreur comme quoi l'événement sorting n'est pas géré.
    J'ai eu beau essayé différentes choses, rien à faire.

    Voici mon code aspx :

    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
    32
    33
    34
    35
    <asp:updatepanel runat="server" id="UpdatePanel2" UpdateMode="Always"> 
       <contenttemplate> 
     <asp:GridView ID="GridViewListeFichier" runat="server"               
                CellPadding="10" >
              <%-- <AlternatingRowStyle CssClass="StyleAltRows" />
              <HeaderStyle CssClass="headerstyle" />
              <RowStyle CssClass="rowstyle" />--%>
           <Columns>
                <asp:TemplateField ShowHeader="true">
                    <ItemTemplate>
                        <asp:CheckBox ID="chkBox" runat="server" />
                    </ItemTemplate>
                    <HeaderTemplate>
                        <asp:CheckBox ID="cbSelectAll" runat="server" Text="" />
                    </HeaderTemplate>
                 </asp:TemplateField>
     
     
     
           </Columns>
     
            <emptydatatemplate>
     
              <asp:image id="NoData"
                imageurl="/Images_Projet/Images/DonneesVides.png"
                alternatetext="Pas d'image" 
                runat="server"/>
     
              <br /> <div style="color:#32639A">Pas de pièce jointe enregistrée</div>  
     
            </emptydatatemplate> 
     
         </asp:GridView>   
     
         </ContentTemplate>
    Et la partie correspondante dans le page_load :

    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
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    protected void Page_Load(object sender, EventArgs e)
            {
     //Remplissage du tableau des pièces jointes
                string c_string = ConfigurationManager.ConnectionStrings["ConnectionString"].ToString();
                SqlConnection cx = new SqlConnection(c_string);
     
                string rqFichiers = "SELECT NumFichier,Chemin,(round(([Taille]/1000),1)) AS TailleKo,DateCreation,(CAST(DateCreation AS INT)) AS DateInt FROM TableImage";
     
                SqlCommand sqlFichiers = new SqlCommand(rqFichiers, cx);
     
                //Ouverture de la connexion
                cx.Open();
     
                SqlDataReader Resultat = sqlFichiers.ExecuteReader();
     
                GridViewListeFichier.AllowSorting = true;
                GridViewListeFichier.AutoGenerateColumns = false;
                GridViewListeFichier.DataKeyNames = new string[] { "Chemin" };
                GridViewListeFichier.AllowPaging = false;
                GridViewListeFichier.ShowHeader = true;
                GridViewListeFichier.CssClass = "StyleTab";
     
     
                BoundField NumFichier = new BoundField();
                NumFichier.HeaderText = "Numéro";
                NumFichier.DataField = "NumFichier";
                NumFichier.SortExpression = "NumFichier";
                NumFichier.ShowHeader = true;
                GridViewListeFichier.Columns.Add(NumFichier);
     
                HyperLinkField Chemin = new HyperLinkField();
                Chemin.HeaderText = "Nom Fichier";
                Chemin.DataNavigateUrlFields = new string[] { "Chemin" };
                Chemin.DataTextField = "Chemin";
                Chemin.DataNavigateUrlFormatString = "~/DownloadFile.aspx?Chemin={0}";
                Chemin.Target = "_blank";
                Chemin.SortExpression = "Chemin";
                Chemin.ShowHeader = true;
                GridViewListeFichier.Columns.Add(Chemin);
     
                BoundField Taille = new BoundField();
                Taille.HeaderText = "Taille";
                Taille.DataField = "TailleKo";
                Taille.SortExpression = "TailleKo";
                Taille.ShowHeader = true;
                GridViewListeFichier.Columns.Add(Taille);
     
                BoundField DateCreation = new BoundField();
                DateCreation.HeaderText = "Date de création";
                DateCreation.DataField = "DateCreation";
                DateCreation.SortExpression = "DateInt";
                DateCreation.ShowHeader = true;
                DateCreation.DataFormatString = "{0:dd/MM/yyyy}";
                GridViewListeFichier.Columns.Add(DateCreation);
     
                GridViewListeFichier.DataSource = Resultat;
                GridViewListeFichier.DataBind();
     
                //Fermeture de la connexion
                cx.Close();
    }
    Si quelqu'un verrait d'où peut venir le problème? Merci.

  2. #2
    Membre extrêmement actif Avatar de cortex024
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 301
    Par défaut
    Bonjour,

    beh tout simplement parce que tu n'as pas de méthode pour l'évènement sorting.

    même si tu crée dynamiquement tes colonnes, tu dois avoir une méthode gridview_sorting qui va implémenter le tri sur tes colonnes.

    pour la créer automatiquement, vas en mode design de ton gridview, dans les évènement attachés et double cliques sur l'évènement sorting.

  3. #3
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2007
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 236
    Par défaut
    Bonjour,

    Voilà un lien qui explique comment on peut faire le sorting

    http://programming.top54u.com/post/A...g-C-sharp.aspx

  4. #4
    Membre extrêmement actif Avatar de cortex024
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 301
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 301
    Par défaut
    j'aoute toujours, je ne penses pas avoir été assez clair dans mon précédent message

    que en fait, mêle si tu n'implémentes rien dans cette méthode sorting, elle est obligatoire à partir du moment où tu mets la propriété allowsorting à true
    c'est comme ça (ce qui est logique tout de même) et uniquement pour cela que ton visual studio râle

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/11/2009, 15h58
  2. Réponses: 3
    Dernier message: 15/09/2009, 08h33
  3. recuperer Listview et gridview en code behind
    Par richton95 dans le forum Windows Presentation Foundation
    Réponses: 6
    Dernier message: 13/08/2009, 12h33
  4. ajouter des colonnes à un gridview en code behind
    Par tortuegenie dans le forum ASP.NET
    Réponses: 1
    Dernier message: 17/02/2009, 14h47
  5. gridview en code behind
    Par tortuegenie dans le forum ASP.NET
    Réponses: 3
    Dernier message: 25/08/2008, 11h40

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