Is there an alternative to using this since using a <form runat="server">
will cause a 500 error.
public override void VerifyRenderingInServerForm(Control control)
{
/* Verifies that the control is rendered */
}
EDITED
With the assistance from @HansDerks I ended up using the following(a jazzed up version of the solution provided.):
protected void Export_Click(object sender, System.EventArgs e)
{
StringWriter writer = new StringWriter();
HtmlTextWriter htmlWriter = new HtmlTextWriter(writer);
GridView gridView = new GridView();
gridView.DataSource = MySqlDataSource;
gridView.AutoGenerateColumns = true;
gridView.DataBind();
gridView.HeaderRow.Style.Add("background-color", "#003c74");
gridView.HeaderRow.Style.Add("color", "#ffffff");
for (int i = 0; i < gridView.Rows.Count; i++)
{
GridViewRow row = gridView.Rows[i];
//Change Color back to white
row.BackColor = System.Drawing.Color.White;
//Apply text style to each Row
row.Attributes.Add("class", "textmode");
//Apply style to Individual Cells of Alternating Row
if (i % 2 != 0)
{
row.BackColor = System.Drawing.Color.AliceBlue;
}
}
gridView.RenderControl(htmlWriter);
htmlWriter.Close();
Response.Clear();
Response.AddHeader("content-disposition", "attachment;filename=filename.xls");
Response.Charset = "";
Response.Write(writer.ToString());
Response.End();
}
I hope you guys will find it useful. Thanks everyone!
If you have the datasource you can try this (replace datatable with relevant datasource)
If you use the DNN grid control, which is based on a Telerik control, you can export the visible contents of the grid with:
This applies to DNN 7.0 though.
Unfortunately, if you have paging turned on, it only outputs the data from the visible rows.