日期:2014-05-20  浏览次数:20487 次

求教一个关于页面到处为文件的问题
Response.Clear();
Response.Buffer   =   true;
Response.Charset   =   "utf-8 ";
Response.AppendHeader( "Content-Disposition ",   "attachment;filename=FileFlow.doc ");
Response.ContentEncoding   =   System.Text.Encoding.GetEncoding( "utf-8 ");
Response.ContentType   =   "application/ms-word ";
this.EnableViewState   =   false;
System.IO.StringWriter   oStringWriter   =   new   System.IO.StringWriter();
System.Web.UI.HtmlTextWriter   oHtmlTextWriter   =   new   System.Web.UI.HtmlTextWriter(oStringWriter);
this.RenderControl(oHtmlTextWriter);
obj.RenderControl()属性的控件    
Response.Write(oStringWriter.ToString());
Response.End(); 

上面这段代码是将页面到处为一个doc文件.代码执行没有问题.
但我发现每次到处时,都说丢失css文件.
我用的是vs2005,里面有App_Themes目录,再下面是red,和black两个样式的目录.

如果我不用样式,到处没有问题,如果用了样式,到处就说丢失文件.

请教这是怎么回事?   应该怎么解决?

------解决方案--------------------
因为你的aspx中有 <link href= "aa.cs "的样式表, word打开时,找不到这个表,所以会报这个错误. 解决办法: this.RenderControl(oHtmlTextWriter ==> 换成一个控件. 如果要导出整个页. 可以把body加个id= "body " runat= "Server " 后台声明一下 Protected HtmlGenderControl body; 然后 用this.body.RenderControl(oHtmlTextWriter)