[英]Exporting gridview to excel giving empty excel sheet
我在按钮单击事件中将gridview导出到Excel工作表,但是导出的Excel工作表仅显示以下信息
代替gridview数据。 在下面,如果导出按钮内的代码单击
private void ExportGridView(object sender, EventArgs e)
{
Response.Clear();
Response.Buffer = true;
Response.AddHeader("content-disposition", "attachment;filename=GridViewExport.xls");
Response.Charset = "";
Response.ContentType = "application/vnd.ms-excel";
using (StringWriter sw = new StringWriter())
{
HtmlTextWriter hw = new HtmlTextWriter(sw);
//To Export all pages
GridView1.AllowPaging = false;
GridView1.DataBind();
GridView1.RenderControl(hw);
//style to format numbers to string
string style = @"<style> .textmode { } </style>";
Response.Write(style);
Response.Output.Write(sw.ToString());
Response.Flush();
Response.End();
}
}
public override void VerifyRenderingInServerForm(Control control)
{
/* Verifies that the control is rendered */
}
另外,aspx中用于gridview的代码是
......
<asp:GridView ID="GridView1" runat="server" Font-Size="10pt" AllowSorting="True"
BackColor="White" BorderColor="#CCCCCC" AutoGenerateSelectButton="true"
OnSelectedIndexChanged="GridView1_SelectedIndexChanged" OnRowDataBound="GridView1_RowDataBound" OnSorting="GridView1_Sorting">
<%-- <Columns>
....................
<td> <asp:Button runat="server" ID="btnExport" Text="Export to Excel" onclick="btnExport_Click" /></td>
</tr>
</table>
</asp:Content>
我解决了这个问题。在将allowpaging设置为false之后,我没有绑定gridview。 下面是完整的代码:
private void ExportGridView(object sender, EventArgs e)
{
Response.Clear();
Response.Buffer = true;
Response.AddHeader("content-disposition", "attachment;filename=GridViewExport.xls");
Response.Charset = "";
Response.ContentType = "application/vnd.ms-excel";
using (StringWriter sw = new StringWriter())
{
HtmlTextWriter hw = new HtmlTextWriter(sw);
//To Export all pages
GridView1.AllowPaging = false;
//GridView1.DataBind();
GridView1.RenderControl(hw);
//style to format numbers to string
string style = @"<style> .textmode { } </style>";
Response.Write(style);
Response.Output.Write(sw.ToString());
Response.Flush();
Response.End();
}
}
另外,我设置EnableEventValidation =“ false”的页面中的.aspx文件中还有另一个更改
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.