Hi dude,
try this code to rectify ur problem make function store ur dt or ds whatever u have taken store it in viewstate and then cast it
the code shown below
public void fillgrid()
{
DataTable dt = new DataTable();
dt = Employee.selectgrid();
grdArea.DataSource = dt;
grdArea.DataBind();
}
public void convertexcel()
{
try
{
Response.Clear();
GridView grdExcel = new GridView();
grdExcel.AutoGenerateColumns = true;
DataTable dtExcel = (DataTable)ViewState["viewRecordEX"];
grdExcel.DataSource = (DataTable)ViewState["viewRecordEX"];
grdExcel.DataBind();
grdExcel.AllowPaging = false;
Response.ContentType = "application/excel";
Response.AddHeader("content-disposition", "attachment;filename=ViewofEmployeeMaster.xls");
Response.Charset = "";
this.EnableViewState = false;
System.IO.StringWriter tw = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);
HtmlForm frm = new HtmlForm();
frm.Attributes.Add("ID", "frm");
frm.Attributes.Add("runat", "Server");
GridViewRow row1 = new GridViewRow(0, -1, DataControlRowType.Header, DataControlRowState.Normal);
TableCell rowheader1 = new TableHeaderCell();
rowheader1.Text = "EMPLOYEE MASTER RECORDS";
rowheader1.ColumnSpan = 12;
rowheader1.Font.Size = 20;
rowheader1.HorizontalAlign = HorizontalAlign.Left;
row1.Cells.Add(rowheader1);
Table t1 = grdExcel.Controls[0] as Table;
if (t1 != null)
{
t1.Rows.AddAt(0, row1);
}
GridViewRow rowblk5 = new GridViewRow(0, -1, DataControlRowType.Header, DataControlRowState.Normal);
TableCell tblblnk5 = new TableCell();
tblblnk5.BorderWidth = 0;
rowblk5.Cells.Add(tblblnk5);
Table tblk5 = grdExcel.Controls[0] as Table;
if (tblk5 != null)
{
tblk5.Rows.AddAt(1, rowblk5);
}
frm.Controls.Add(grdExcel);
grdExcel.RenderControl(hw);
Response.Write(tw.ToString());
Response.End();
}
catch (Exception ex)
{
throw ex;
}
}