Hi,
I have written code for 'Export To Excel' in the visual web part as below
//ascx file
<table>
<tr>
<td>From Date:</td>
<td><SharePoint:DateTimeControl ID="dtFromDate" runat="server" DateOnly="True" /></td>
</tr>
<tr>
<td>To Date:</td>
<td><SharePoint:DateTimeControl ID="dtToDate" runat="server" DateOnly="True" TimeOnly="False" /></td>
</tr>
<tr>
<td>Report Type:<asp:DropDownList ID="ddlreporttype" runat="server"><asp:ListItem>Consolidated</asp:ListItem><asp:ListItem>Question Wise</asp:ListItem></asp:DropDownList></td>
<td>
<br />
<asp:GridView ID="gvwikireport" runat="server">
</asp:GridView>
</td>
</tr>
<tr>
<td><asp:Button ID="btnExportToExcel" runat="server" Text="Export To Excel" OnClick="btnExportToExcel_Click"/></td>
</tr>
</table>
//cs file
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
BindGridview();
}
}
private void BindGridview()
{
DataTable dt = new DataTable();
dt.Columns.Add("UserId", typeof(Int32));
dt.Columns.Add("UserName", typeof(string));
dt.Columns.Add("Education", typeof(string));
dt.Columns.Add("Location", typeof(string));
dt.Rows.Add(1, "SureshDasari", "B.Tech", "Chennai");
dt.Rows.Add(2, "MadhavSai", "MBA", "Nagpur");
dt.Rows.Add(3, "MaheshDasari", "B.Tech", "Nuzividu");
dt.Rows.Add(4, "Rohini", "MSC", "Chennai");
dt.Rows.Add(5, "Mahendra", "CA", "Guntur");
dt.Rows.Add(6, "Honey", "B.Tech", "Nagpur");
gvwikireport.DataSource = dt;
gvwikireport.DataBind();
}
protected void btnExportToExcel_Click(object sender, EventArgs e)
{
Page.Response.ClearContent();
Page.Response.Buffer = true;
Page.Response.AddHeader("content-disposition", string.Format("attachment; filename={0}", "WikiReport.xls"));
Page.Response.ContentType = "application/ms-excel";
StringWriter sw = new StringWriter();
HtmlTextWriter htw = new HtmlTextWriter(sw);
gvwikireport.AllowPaging = false;
BindGridview();
//Change the Header Row back to white color
gvwikireport.HeaderRow.Style.Add("background-color", "#FFFFFF");
//Applying stlye to gridview header cells
for (int i = 0; i < gvwikireport.HeaderRow.Cells.Count; i++)
{
gvwikireport.HeaderRow.Cells[i].Style.Add("background-color", "#df5015");
}
gvwikireport.RenderControl(htw);
Page.Response.Write(sw.ToString());
Page.Response.End();
}
But after clicking the 'Export To Excel' button i am getting the below error
Control 'ctl00_SPWebPartManager1_g_d4fb972b_26ec_4065_9c89_80b51b384492_gvwikireport' of type 'GridView' must be placed inside a form tag with runat=server.
In case if i am modifying the code as below I am getting error as 'page can have only one server tag'.
<form id="frmgrdview" runat="server">
<asp:GridView ID="gvwikireport" runat="server">
</asp:GridView></form>
So please share your ideas/thoughts on the same.
Regards,
Sudheer
Thanks & Regards, Sudheer