Avatar billede kxh Nybegynder
13. november 2005 - 10:40 Der er 6 kommentarer og
1 løsning

Export gridview til excel i C#

Hej jeg har et gridview, som brugeren skal have mulighed for at gemme som en excel fil.
Jeg har fundet følgende kode.

Response.Clear();
        Response.AddHeader("content-disposition", "attachment;filename=FileName.xls");
        Response.Charset = "";
        Response.Cache.SetCacheability(HttpCacheability.NoCache);
        Response.ContentType = "application/vnd.xls";

        System.IO.StringWriter stringWrite = new System.IO.StringWriter();
        System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);

        GridView1.RenderControl(htmlWrite);
        Response.Write(stringWrite.ToString());
        Response.End();

men men men, jeg får følgende fejl når jeg afprøver min kode.
Control 'GridView1' of type 'GridView' must be placed inside a form tag with runat=server.

efter hvad jeg kan se i min kode, er der sat runat=server på min form tag, og gridview ligger inden for form tag.

Nogen forslag ?, eller andre måder at løse opgaven på

// Kim
Avatar billede dr_chaos Nybegynder
13. november 2005 - 11:45 #1
prøv med :

        System.IO.StringWriter stringWrite = new System.IO.StringWriter();
        System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);

        GridView1.RenderControl(htmlWrite);
Response.Clear();
        Response.AddHeader("content-disposition", "attachment;filename=FileName.xls");
        Response.Charset = "";
        Response.Cache.SetCacheability(HttpCacheability.NoCache);
        Response.ContentType = "application/vnd.xls";

        Response.Write(stringWrite.ToString());
        Response.End();
Avatar billede kxh Nybegynder
13. november 2005 - 11:52 #3
Hej dr chaos

Undskyld jeg nåede ikke at se din kommentar før jeg fik skrevet min egen løsning ind
Jeg har lige prøvet din udgave, og jeg får samme fejl så snart jeg laver gridview1.rendercontrol.

// Kim
Avatar billede dr_chaos Nybegynder
13. november 2005 - 13:37 #4
ok helt iorden.
Avatar billede dr_chaos Nybegynder
13. november 2005 - 13:37 #5
men hvor renderede du gridviewet ?
Avatar billede kxh Nybegynder
13. november 2005 - 14:27 #6
Hej igen

private void Page_Load(object sender, EventArgs e)
{
  System.IO.StringWriter stringWriter =
      new System.IO.StringWriter();
  System.Web.UI.HtmlTextWriter htmlWriter =
      new System.Web.UI.HtmlTextWriter(stringWriter);
  contentPanel.RenderControl(htmlWriter);
  string s = stringWriter.ToString();
  Response.Write(s);
  Response.End();
}

public override void
  VerifyRenderingInServerForm(Control control)
{
  return;
}

// Kim
Avatar billede dr_chaos Nybegynder
13. november 2005 - 15:07 #7
ok det var også det du gjorde med dit første kode eksempel ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester