Bonjour, j'utilise un GridView pour afficher le résultat d'une requête sur une base de données, et j'aimerais exporter ce tableau vers Excel. Toutes les discussions que j'ai trouvées à ce sujet sur le forum utilisent un DataGrid et appliquent la méthode suivante :
HttpContext.Current.Response.Clear()
HttpContext.Current.Response.Buffer = True
HttpContext.Current.Response.ContentType = "application/vnd.ms-excel"
HttpContext.Current.Response.Charset = ""
Dim sw As New StringWriter
Dim tw As New UI.HtmlTextWriter(sw)
MonGridView.RenderControl(tw)
HttpContext.Current.Response.Write(sw.ToString())
HttpContext.Current.Response.End()
Si je mets un DataGrid, cela marche parfaitement. Mais si je mets un GridView, alors j'obtiens le message d'erreur suivant :"Control 'MonGridView' of type 'GridView' must be placed inside a form tag with runat=server." Pourtant, mon GridView est bien dans un form qui comporte runat=server...
Pour info, j'utilise le GridView car je peux modifier son aspect selon mes souhaits contrairement au datagrid...
J'ai essayé d'insérer sur ma page un DataGrid, copie de mon GridView mais sans mise en forme, avec le param Visible=False (puisque je ne veux pas voir ce tableau mais seulement mon GridView), mais dans ce cas l'export du DataGrid ne marche plus...
Quelqu'un peut-il me dire comment faire pour appliquer la méthode d'export Excel sur un GridView ?
Merci d'avance.