• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

ASP.NET:页面保存为WORD出现的问题!

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

通常项目开发需要把页面上指定内容保存为WORD/EXCEL等文件形式,网上采用比较简单的方法如下:

 sender, ImageClickEventArgs e)
{
    System.IO.StringWriter sw = new System.IO.StringWriter();
    System.Web.UI.HtmlTextWriter htw 
= new System.Web.UI.HtmlTextWriter(sw);
    
this.jjqqhb_container.Page.EnableViewState = false;
    
this.jjqqhb_container.RenderControl(htw);
    Response.Buffer 
= true;
    Response.Clear();
    Response.ClearContent();
    Response.ClearHeaders();
    Response.ContentType 
= "application/ms-word";
    Response.Charset 
= "utf-8";
    Response.ContentEncoding 
= System.Text.Encoding.GetEncoding("utf-8");
    Response.AddHeader(
"Content-Disposition""attachment;filename=1.doc");
    Response.Write(sw.ToString());
    Response.Flush();
    Response.Close(); 
}

其中jjqqhb_container包含的HTML代码就是需要转换为文件的内容

但是转换过程出现了3个小问题

(1)保存的WORD文档上出现"窗体顶端","窗体底端"等多余信息

解决办法:因为控件在<form></form>中,故有窗体信息,你可以删掉它,把控件放body里编辑

 (2)  ........会发生只能在执行 Render() 的过程中调用 RegisterForEventValidation的错误提示

解决办法:this.jjqqhb_container.Page.EnableViewState = false;或者直接修改页面
<%@ Page Language="C" EnableEventValidation = "false" AutoEventWireup="true" .....>

(3) 类型“XX”的控件“XX”必须放在具有 runat=server 的窗体标记内

解决办法:在后台文件中重载VerifyRenderingInServerForm方法,如下所示。

 VerifyRenderingInServerForm(Control control) 

    //base.VerifyRenderingInServerForm(control); 


 


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
第一个asp.netMVC5+ExtJS6入门案例项目发布时间:2022-07-10
下一篇:
ASP.NETVisualStudio2010发布Web网站问题详解发布时间:2022-07-10
热门推荐
热门话题
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap