datagrid 中数据怎样导出到ExCel文件中?

cdshuwt 2005-03-26 10:44:38
我有一段c#代码如下:
Page.Response.Clear();
Response.Buffer= true;
Page.Response.AppendHeader("Content-Disposition","attachment;filename="+filesName+".xls");
Page.Response.ContentType="application/ms-excel" ;
Response.Charset="utf-8";
Page.Response.ContentEncoding=System.Text.Encoding.GetEncoding("utf-8");
this.EnableViewState =false;
System.IO.StringWriter tw = new System.IO.StringWriter() ;
System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter (tw);
this.DataGrid1.RenderControl(hw);
Page.Response.Write(tw.ToString());
Page.Response.End();
我运行的结果是:
异常详细信息: System.Web.HttpException: 类型“Button”的控件“DataGrid1__ctl2__ctl0”必须放在具有 runat=server 的窗体标记内。

源错误:


行 148: System.IO.StringWriter tw = new System.IO.StringWriter() ;
行 149: System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter (tw);
行 150: this.DataGrid1.RenderControl(hw); 就是这一行出错了
行 151: Page.Response.Write(tw.ToString());
行 152:

堆栈跟踪:

[HttpException (0x80004005): 类型“Button”的控件“DataGrid1__ctl2__ctl0”必须放在具有 runat=server 的窗体标记内。]
System.Web.UI.Page.VerifyRenderingInServerForm(Control control)
System.Web.UI.WebControls.Button.AddAttributesToRender(HtmlTextWriter writer)
System.Web.UI.WebControls.WebControl.RenderBeginTag(HtmlTextWriter writer) +17
System.Web.UI.WebControls.WebControl.Render(HtmlTextWriter writer) +17
System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +243
System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +72
System.Web.UI.Control.Render(HtmlTextWriter writer) +7
System.Web.UI.WebControls.WebControl.RenderContents(HtmlTextWriter writer)
System.Web.UI.WebControls.TableCell.RenderContents(HtmlTextWriter writer)
System.Web.UI.WebControls.WebControl.Render(HtmlTextWriter writer) +29
System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +243
System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +72
System.Web.UI.Control.Render(HtmlTextWriter writer) +7
System.Web.UI.WebControls.WebControl.RenderContents(HtmlTextWriter writer)
System.Web.UI.WebControls.WebControl.Render(HtmlTextWriter writer) +29
System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +243
System.Web.UI.WebControls.Table.RenderContents(HtmlTextWriter writer)
System.Web.UI.WebControls.WebControl.Render(HtmlTextWriter writer) +29
System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +243
System.Web.UI.Control.RenderChildren(HtmlTextWriter writer) +72
System.Web.UI.Control.Render(HtmlTextWriter writer) +7
System.Web.UI.WebControls.WebControl.RenderContents(HtmlTextWriter writer)
System.Web.UI.WebControls.BaseDataList.Render(HtmlTextWriter writer)
System.Web.UI.Control.RenderControl(HtmlTextWriter writer) +243
netapp.TEACH.WebForm1.btnexport_Click(Object sender, EventArgs e) in c:\inetpub\wwwroot\netapp\teach\webform1.aspx.cs:150
System.Web.UI.WebControls.Button.OnClick(EventArgs e)
System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +18
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +33
System.Web.UI.Page.ProcessRequestMain() +1277
不知道错误在哪里??请教还有没有更好的方法,或其它方法也可以(复杂一点没关系)。



...全文
143 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
LoveCherry 2005-03-27
  • 打赏
  • 举报
回复
http://blog.csdn.net/lovecherry/archive/2005/03/12/317790.aspx
datouxiaogui 2005-03-27
  • 打赏
  • 举报
回复
我有一个,但是代码不是在这台电脑上,基本思路上绑定后导出,要注意的还要写一段代码来处理特殊的字符
saintess 2005-03-26
  • 打赏
  • 举报
回复
你的datagrid是不是有button类型的列啊?那错误提示好像要把这个datagrid放在form标记里面。
AllenTing 2005-03-26
  • 打赏
  • 举报
回复
http://www.cnblogs.com/wljcan/archive/2004/08/21/26940.aspx

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧