J'ai un gridview dans ma page. Ce que je veux, c'est quand l'utilisateur clique sur le bouton "Exporter", il devrait ouvrir une boîte pour télécharger un fichier et enregistrer en tant que feuille Excel. J'ai pagging activé dans ma grille, mais quand j'exporte des données, toutes les lignes doivent être envoyées dans la feuille Excel indépendamment de pagging. Je ne peux pas exporter ma source de données (datatable) parce qu'elle contient quelques autres colonnes qui sont cachées mais je l'emploie juste pour mon but et ne fais pas quoi pour le montrer aux utilisateurs. Comment puis-je le faire .... ??? Je ne reçois aucune idée ...Comment exporter GridView vers Excel?
Comme James Johnson a dit ... J'ai fait comme ça. Voici le code donné par lui
protected void btnExport_Click(object sender, EventArgs e)
{
Response.Clear();
Response.Buffer = true;
Response.ContentType = "application/vnd.ms-excel";
Response.Charset = "";
System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
GridView1.RenderControl(oHtmlTextWriter);//Error is thrown from here.
Response.Write(oStringWriter.ToString());
Response.End();
}
Mais faire cela jette l'erreur suivante à partir à la potion spécifiée dans le code
Control 'ctl00_ContentPlaceHolder1_ViewAdvances1_grdAdvance' of type 'GridView' must be placed inside a form tag with runat=server.
Je l'ai placé dans gridview usercontrol, le usercontrol est placé dans la page .aspx et cette page utilise la page maître qui a déjà une étiquette de formulaire.
..votre le code affiche cette erreur "Contrôle 'ctl00_ContentPlaceHolder1_ViewAdvances1_grdAdvance' de type 'GridView' doit être placé dans une balise de formulaire avec runat = server. " mais ma grille est placée dans le contenu de la page enfant. La page maître a déjà un tag de formulaire .... –