APP NEWS
Asp.net中的GridView导出遇到的问题
对于GridView导出的内容的代码大致如下:Response.Clear();Response.Buffer=true;Response.Charset="GB2312";Response.AppendHeader("Content-Disposition","attachment;filename="+fileName+".xl
对于GridView导出的内容的代码大致如下:
Response.Clear();
Response.Buffer = true;
Response.Charset = &GB2312&;
Response.AppendHeader(&Content-Disposition&, &attachment;filename=& + fileName + &.xls&);
Response.ContentEncoding = System.Text.Encoding.GetEncoding(&GB2312&);
Response.ContentType = &application/ms-excel&;
this.EnableViewState = false;
System.Globalization.CultureInfo mycitrad = new System.Globalization.CultureInfo(&ZH-CN&, true);
System.IO.StringWriter oStringWriter = new System.IO.StringWriter(myCItrad);
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
this.grid1.RenderControl(oHtmlTextWriter);
Response.Write(oStringWriter.ToString());
Response.End();
//grid1为表格的ID
注:蓝色标识代码为出错的那行代码。
OK,好不容易敲完代码,运行程序测试。蹬,报错了。
问题一:类型&Grid1&的控件&gvCompareDetail&必须放在具有 runat=server 的窗体标记内。
注:Grid1为表格的ID。
查找网上的解决大致为:
1)把Grid放到
间。2)给Grid加标记runat=&server&。
查明前台Grid确实有加标记runat=&server&的,而且表格是放在form中的。
解决方法:在后台代码加上以下重写方法
public override void VerifyRenderingInServerForm(Control control)
{ }
查找MSDN说明,该函数的作用在于:确认在运行时为指定的 ASP.NET 移动控件呈现 Form 控件。
语法:
public override void VerifyRenderingInServerForm(
Control control
)
参数
control
类型:System.Web.UI..::.Control
必须位于 Form 控件中的 ASP.NET 移动控件。
#p#副标题#e#
备注
如果在运行时控件未包含在 Form 中,则此方法将重写 Page..::.VerifyRenderingInServerForm 方法以引发异常。
如果回发或使用客户端脚本的服务器控件没有包含在 HtmlForm 服务器控件 (






