从Infragistics UltraWebGrid 导出数据到Excel

刚写完一篇关于从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 或发出客户端脚本时尤其重要。复合服务器控件不需要作出此调用。

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

你可能感兴趣的:(UI,Excel,脚本,asp.net,asp)