注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Start Know

自分を信じて、自分で一定でいけます

 
 
 

日志

 
 

从Infragistics UltraWebGrid 导出数据到Excel  

2009-03-27 15:25:29|  分类: .net |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

刚写完一篇关于从Infragistics UltraWebGrid 导出数据到Excel的文章,在孟子E章那看到一篇关于ASP.NET 2.0中将GridView 导出到Excel文件中的文章。受其启发,发现从Infragistics UltraWebGrid 导出数据到Excel中也可以用类似的方法实现。

这种方法的好处是:速度快;能够将Infragistics UltraWebGrid 在网页上显示的样式也导出到Excel中;

这种方法的不足是:如果Infragistics UltraWebGrid 中有隐藏的行或列的话,会将这些隐藏的信息也导出来。

下面是这种方法实现的代码:

从Infragistics UltraWebGrid 导出数据到Excel - Start Know - Start Knowprotected void ButtonExport_Click(object sender, EventArgs e)

从Infragistics UltraWebGrid 导出数据到Excel - Start Know - Start Know从Infragistics UltraWebGrid 导出数据到Excel - Start Know - Start Know    ...{

从Infragistics UltraWebGrid 导出数据到Excel - Start Know - Start Know        Response.Clear();

从Infragistics UltraWebGrid 导出数据到Excel - Start Know - Start Know        Response.Buffer = true;

从Infragistics UltraWebGrid 导出数据到Excel - Start Know - Start Know        Response.Charset = "GB2312";

从Infragistics UltraWebGrid 导出数据到Excel - Start Know - Start Know        Response.AppendHeader("Content-Disposition", "attachment;filename=FileName.xls");

从Infragistics UltraWebGrid 导出数据到Excel - Start Know - Start Know        // 如果设置为 GetEncoding("GB2312");导出的文件将会出现乱码!!!

从Infragistics UltraWebGrid 导出数据到Excel - Start Know - Start Know        Response.ContentEncoding = System.Text.Encoding.UTF7;

从Infragistics UltraWebGrid 导出数据到Excel - Start Know - Start Know        Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。 

从Infragistics UltraWebGrid 导出数据到Excel - Start Know - Start Know        System.IO.StringWriter oStringWriter = new System.IO.StringWriter();

从Infragistics UltraWebGrid 导出数据到Excel - Start Know - Start Know        System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);

从Infragistics UltraWebGrid 导出数据到Excel - Start Know - Start Know        this.UltraWebGrid1.RenderControl(oHtmlTextWriter);

从Infragistics UltraWebGrid 导出数据到Excel - Start Know - Start Know        Response.Output.Write(oStringWriter.ToString());

从Infragistics UltraWebGrid 导出数据到Excel - Start Know - Start Know        Response.Flush();

从Infragistics UltraWebGrid 导出数据到Excel - Start Know - Start Know        Response.End();

从Infragistics UltraWebGrid 导出数据到Excel - Start Know - Start Know    }

注意,在页面对应的导出按钮的单击事件中加入以上代码后,还需要在该页面的代码中加入以下的代码,否则会出现错误:

从Infragistics UltraWebGrid 导出数据到Excel - Start Know - Start Knowpublic override void VerifyRenderingInServerForm(Control control)

从Infragistics UltraWebGrid 导出数据到Excel - Start Know - Start Know从Infragistics UltraWebGrid 导出数据到Excel - Start Know - Start Know    ...{ }

在孟子E章的文章中是如下解释加这些代码的原因:

值得注意的是VerifyRenderingInServerForm重载方法:

MSDN上的 VerifyRenderingInServerForm 方法的描述:

  必须位于 <form runat=server> 标记中的控件可以在呈现之前调用此方法,以便在控件被置于标记外时显示错误信息。发送回或依赖于注册的脚本块的控件应该在 Control.Render 方法的重写中调用此方法。呈现服务器窗体元素的方式不同的页可以重写此方法以在不同的条件下引发异常。

  如果回发或使用客户端脚本的服务器控件没有包含在 HtmlForm 服务器控件 (<form runat="server">) 标记中,它们将无法正常工作。这些控件可以在呈现时调用该方法,以在它们没有包含在 HtmlForm 控件中时提供明确的错误信息。

  开发自定义服务器控件时,通常在为任何类型的输入标记重写 Render 方法时调用该方法。这在输入控件调用 GetPostBackEventReference 或发出客户端脚本时尤其重要。复合服务器控件不需要作出此调用。

没有这个方法,程序将报错。

  评论这张
 
阅读(843)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017