on of my friend told me that he facing problem to export data from gridview into excel when he is using updatepanel, then i feel to write this code.
// write this code in our export button click event protected void export_click(object sender, EventArgs e){ Response.ClearContent(); Response.AddHeader("content-disposition", "attachment;filename=export.xls"); Response.Charset = ""; Response.ContentType = "application/vnd.xls"; System.IO.StringWriter stringWrite = new System.IO.StringWriter(); System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite); this.ClearControls(GridViewName); GridViewName.RenderControl(htmlWrite); Response.Write(stringWrite.ToString()); Response.End(); } //Also add this function to clear the controls private void ClearControls(Control ctrl) { for (int i = ctrl.Controls.Count - 1; i >= 0; i--) { ClearControls(ctrl.Controls[i]); } if (!(ctrl is TableCell)) { if (ctrl.GetType().GetProperty("SelectedItem") != null) { LiteralControl literal = new LiteralControl(); ctrl.Parent.Controls.Add(literal); try { literal.Text = (string)ctrl.GetType().GetProperty("SelectedItem").GetValue(ctrl, null); } catch { } ctrl.Parent.Controls.Remove(ctrl); } else if (ctrl.GetType().GetProperty("Text") != null) { if (ctrl.Visible == true) { LiteralControl literal = new LiteralControl(); ctrl.Parent.Controls.Add(literal); literal.Text = (string)ctrl.GetType().GetProperty("Text").GetValue(ctrl, null); ctrl.Parent.Controls.Remove(ctrl); } } } return; } public override void VerifyRenderingInServerForm(Control control) { }
No comments:
Post a Comment