在用gridview导出Excel时 如果报错 gridview 应该在一个为 runat="server" 的窗体中时,应该在窗体最上面
加上这句 EnableEventValidation="false" 如下:
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="PingLeiCaoz.aspx.cs" Inherits="DZX.Web.DzxServer.PingLeiCaoz" EnableEventValidation="false" %>
还有 得在.cs 代码里加上下面这段代码: 里面上面内容都不需要写
public override void VerifyRenderingInServerForm(Control control)
{
//base.VerifyRenderingInServerForm(control);
}
如果导出的Excel里面的内容 对数字是格式为 十六进制的 你可以在cs代码里加上这段代码
protected void GridView1_RowDataBound(object sender, GridViewRowEventArgs e)
{
if (e.Row.RowType == DataControlRowType.DataRow)
{
e.Row.Cells[0].Attributes.Add("style", "vnd.ms-excel.numberformat:@");
}
}
当然 你也得在 aspx 的gridview里加上 OnRowDataBound 关联到上面这个方法