Insére un dataset dans un gridview

Résolu
Charlingals1 Messages postés 30 Date d'inscription   Statut Membre Dernière intervention   -  
Charlingals1 Messages postés 30 Date d'inscription   Statut Membre Dernière intervention   -
Bonjour,

Je sui entrain de faire un site web en ASP,

Dans mon site j'utilise des gridview, dont la source est un dataset, Ce Que j'aimerai faire c'est pouvoir exporter mon gridview vers excel, en cliquant sur un bouton

voici le code de la page

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default2.aspx.cs" Inherits="Default2" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml" >
  <head id="Head1" runat="server">
    <title>GridView DataBind Example</title>
</head>
<body>
    <form id="form2" runat="server">
        
      <h3>GridView DataBind Example</h3>
            
      <asp:label id="Message"
        forecolor="Red"
        runat="server"/>
               
      <br/>    

      <asp:gridview id="AuthorsGridView" 
        autogeneratecolumns="true" 
        runat="server">
      </asp:gridview>
      <asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="Button"/>
                        
    </form>
  </body>
</html>


Et voici la procedure qui s'éxécute lorsque je clic sur le bouton

 string strConnexion = ConfigurationManager.ConnectionStrings["Pass_sportConnectionString"].ToString();
        string strRequete = " SELECT Discipline$.Disciplines FROM Discipline$ GROUP BY Discipline$.Disciplines";

        Response.AddHeader("content-disposition", "attachment;filename=Test.xls");
        Response.Charset = "iso-8859-1, windows-1252";
        Response.ContentType = "application/vnd.excel";

        System.IO.StringWriter oStringWriter = new System.IO.StringWriter();
        System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);

        SqlConnection oConnection = new SqlConnection(strConnexion);
        oConnection.Open();

        // Chargement de la liste des catégories dans oDataSet
        SqlDataAdapter oSqlDataAdapter = new SqlDataAdapter(strRequete, oConnection);

        DataSet oDataSet = new DataSet("Categories");
        oSqlDataAdapter.Fill(oDataSet, "Categories");
        AuthorsGridView.DataSource = oDataSet;
        AuthorsGridView.DataBind();

        // Affichage du contenu de oDataSet avant insertion de données

        AuthorsGridView.RenderControl(oHtmlTextWriter);
        Response.Write(oStringWriter.ToString());
        Response.End();


Lorsque je clic sur le bouton un message d'erreur s'affiche, il me dis que faut que je mette le gridview dans un form avec runat=server Mais le soucis, c''st déjà ce que j'ai.

J'ai déjà testé de prendre juste le code du bouton et le gridview seul sans aucune autre fonction autour. Mais ca fait la même chose.

Si vous avez une solution je vous remercis

Merci

2 réponses

Charlingals1 Messages postés 30 Date d'inscription   Statut Membre Dernière intervention   17
 
Bonjour

j'ai oublié de présicer, même si à première vu du code c'est évidant mais je code en C#

Merci
0
Charlingals1 Messages postés 30 Date d'inscription   Statut Membre Dernière intervention   17
 
Bonjour

J'ai trouvé la solution

Je vous fait par de la solution

Premièrement il manqué ça dans la balise Page

<%@ Page EnableEventValidation="false" %>


Et ensuite il faut rajouter une procédure en C#

public override void VerifyRenderingInServerForm(Control control) 
{
// Confirms that an HtmlForm control is rendered for the specified ASP.NET server control at run time.
}


Voila la procedure fait rien elle dis juste que le grid view est dans un form

Merci
En tout cas j'espére que sa vas aider du monde
0