请教关于将DataGrid输出到Excel后本页控件将实效的原因?

sy246 2005-06-17 12:38:26
在使用如下语句将DataGrid内容输出到Excel后本页的控件将会实效,必须是转换到其他页面后在回来才能使用这些控件,哪位大侠知道原因?
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";//设置输出文件类型为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.DataGrid1.RenderControl(oHtmlTextWriter);
Response.Write(oStringWriter.ToString());
Response.End();


我猜是Response.End();搞的,可是不加这句……
...全文
112 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
sy246 2005-06-17
  • 打赏
  • 举报
回复
有没有人知道呀?
机器人 2005-06-17
  • 打赏
  • 举报
回复
建议,用window.open新开一个窗口,显示Excel
sy246 2005-06-17
  • 打赏
  • 举报
回复
问题解决了,其实所有操作都是没有问题的。
原因是Response.End();操作是将本页面与服务器的通信给终止了,所以其他控件就不能在使用了,只有在次建立通信。也不知道我这么说对不对。

解决方案:
  将下载信息的页面放到令一个页面中,然后让用户在主页面选择要下载的数据后将选择的参数放到Session中,然后调用下载页面,就可以了。

谢谢楼上
WeekZero 2005-06-17
  • 打赏
  • 举报
回复
俺顶
hchxxzx 2005-06-17
  • 打赏
  • 举报
回复
问题在这里面HttpContext.Current.Response.ContentType="application/ms-excel";
这个语句,是改变当前页面的头部标志,改变之后,此页面即转为输出文件的页面,不再是ContentType="html/text"格式了
你认为,能在WORD中运行JS脚本吗?不能.
sy246 2005-06-17
  • 打赏
  • 举报
回复
我顶

62,046

社区成员

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

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

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

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