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:
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:
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.