Search code examples
c#asp.netdatabasehtmltextwriterstringwriter

Add a title when exporting gridview data to a doc file


I have some Sql Server database, and I return the data with this method:

protected DataTable GetProductsData()
{
            if (ddTipRaport.SelectedItem.Text == "Toate Cerintele")
            { DataTable dt = new DataTable();
                System.Data.SqlClient.SqlConnection con = new System.Data.SqlClient.SqlConnection(
             "Data Source=BOGDAN-PC\\BOGDAN;Initial Catalog=ePlanning;Integrated Security=SSPI;Connect Timeout=10;TrustServerCertificate=True ");
                System.Data.SqlClient.SqlCommand comm = new System.Data.SqlClient.SqlCommand();
                comm.CommandText = "Select PS.titlu_cerinta as 'Categorie Cerinta', P.id_subcerinta as 'ID',p.titlu_subcerinta as 'Titlu Cerinta',p.data_crearii as 'Data Crearii',p.autor as 'Autor',p.revizuita as'Revizuita',p.revizuitor as'Revizuitor',p.prioritate as 'Prioritate(Importanta)',p.acoperire as 'Stare Acoperire' from subCerinteProiect P inner join cerinteProiect PS on P.id_cerinta=PS.id_cerinta where PS.id_proiect = " + (Request.QueryString["proiect"]).ToString() + " order by PS.id_cerinta desc";
                comm.Connection = con;
                con.Open();
                SqlDataAdapter da = new SqlDataAdapter(comm);

                da.Fill(dt);
                con.Close();
                return dt;
            }

And then I write it all in a document with this method :

  protected void ExportDataTableToWord()
  {
            Response.ClearContent();
            Response.ClearHeaders();
            Response.Buffer = true;
            Response.Charset = "";
            Response.ContentType = "application/vnd.ms-word";
            Response.AddHeader("content-disposition", "attachment;filename=Raport_"+ DateTime.Now.ToShortDateString()+"_"+DateTime.Now.ToShortTimeString()+".doc");

            StringWriter sWriter = new StringWriter();

            HtmlTextWriter hWriter = new HtmlTextWriter(sWriter);

            GridView GridView1 = new GridView();
            GridView1.RowStyle.HorizontalAlign = HorizontalAlign.Center;
            GridView1.DataSource = GetProductsData();
            GridView1.DataBind();
            GridView1.RenderControl(hWriter);

            Response.Write(sWriter.ToString());

            Response.End();
 }

My question is, How to add a Title above the exported gridview, Thanks!


Solution

  • The property you are looking for is called the caption http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.caption.aspx

    E.g.

    GridView1.Caption = "StackOverFlow Grid...";