Wijmo 更优美的jQuery UI部件集:导出Wijmo的GridView到Excel

Wijmo GridView 控件不提供导出Excel文件的方法。本篇博客介绍一种将Wijmo的GridView控件保存到Excel的简单方法。你可以使用同样的方法在C1 WebUI GridView上。

 

步骤1 : C1GridView绑定至数据源

第一步是将C1GridView绑定到数据源。为了简单起见,我们将其绑定到C1Nwind.mdb的Customers表。

 

步骤2 : 导出C1GridView Excel

导出到Excel需要分成两步。第一步是将GridView保存至一个HTML字符串。

Web控件有一个RenderControl()方法可以将服务器端控件的内容输出到指定的HtmlTextWriter对象。如果启用了Tracing,该方法还将存储控件的Trace信息。然后该HtmlTextWriter对象输出到一个StringWriter 对象。

下面的方法被用来创建一个字符串:

Public Function DataGridToExcel(ByVal dgExport As C1.Web.Wijmo.Controls.C1GridView.C1GridView) As String

    '创建一个stringwriter

    Dim stringWrite As New System.IO.StringWriter()

    '创建一个使用该stringwriter的htmltextwriter

    Dim htmlWrite As New System.Web.UI.HtmlTextWriter(stringWrite)

    Dim dg As C1.Web.Wijmo.Controls.C1GridView.C1GridView

    'just set the input datagrid = to the new dg grid

    dg = dgExport

    '将header的字体加粗

    dg.HeaderStyle.Font.Bold = True

    '如果需要,这里是在组件级别改变颜色/格式

    dg.HeaderStyle.ForeColor = System.Drawing.Color.Black

    dg.RowStyle.ForeColor = System.Drawing.Color.Black

    '绑定修改后的datagrid

    '告诉datagrid将自己呈现到我们提供的htmltextwriter

    dg.AllowSorting = False

    dg.AllowPaging = False

    dg.AllowCustomPaging = False

    '新的代码

    Dim parent As Control = dg.Parent

    parent.Controls.Remove(dg)

    dg.RenderControl(htmlWrite)

    '新的代码

    parent.Controls.Add(dg)

    '输出HTML

    Return stringWrite.ToString()

End Function

 

 

 

下一步,我们将在一个Button Click事件中调用这个DownloadToExcel 方法从保存的字符串创建一个excel文件。

Public Sub DownloadToExcel(ByVal content As String, ByVal response As HttpResponse)

'清理 response.object

response.Clear()

response.Buffer = True

response.Charset = ""

'设置响应的MIME类型为excel

response.ContentType = "application/vnd.ms-excel"

response.ContentEncoding = New System.Text.UTF8Encoding()

response.Write(content)

response.End()

End Sub

 

 

 

实现时的问题

在相当多的情况下,你会在导出时遇到一些错误。你可能会收到一条错误信息:“RegisterForEventValidation 只能在Render()过程中被调用;”。在这种情况下,请尝试以下方法:

1. 你可以向下面的文章描述的那样,重载VerifyRenderingInServerForm 方法:

http://connect.microsoft.com/VisualStudio/feedback/details/118285/rendercontrol-doesnt-work-for-gridview

Public Overrides Sub VerifyRenderingInServerForm(control As Control)

End Sub

 

2. 为了避免收到“RegisterForEventValidation 只能在Render()过程中被调用;”异常,可以关闭Page.EnableEventValidation 或者将RenderControl方法调用放置在一个try-catch块中。

此外,如果gridview包含一个复选框或者一个模板列,你会收到上面的错误。目前已发现微软发布的GridView会发生同样的错误。由于C1GridView继承自微软发布的GridView,所以它是C1GridView的已知设计问题。

 

下载示例 

 

Wijmo下载,请进入Studio for ASP.NET Wijmo 2012 v1正式发布(2012.03.22更新)!

时间: 2024-09-23 21:43:21

Wijmo 更优美的jQuery UI部件集:导出Wijmo的GridView到Excel的相关文章

Wijmo 更优美的jQuery UI部件集:通过jsFiddle测试Wijmo Gauges

Wijmo 的巨大优势之一就是,它们是非常流行的jQuery UI部件.这将意味着它们的基础类库具有很多支持者.具有众多的支持者同时也意味着更多好用的工具.这些好用的工具之一就是很酷的jsFiddle,这是一个实时的HTML/CSS/JavaScript snippet编辑器.用它来以一种迅速的无开销的方式测试一些小东西是相当棒的.事实上,我们可以用它来实时的测试一些wijmo部件,这里我们会看到如何做到这一点.因为Wijmo gauges使用到了基于浏览器能力的SVG或者VML,这些是"无插件

Wijmo 更优美的jQuery UI部件集:发现 Wijmo

内容  1 什么是Wijmo?  2 jQuery 语法  3 jQuery 选择器      3.1 jQuery 元素选择器      3.2 jQuery 属性选择器      3.3 jQuery CSS 选择器  4 文件准备功能  5 jQuery 选项  6 如何引用Wijmo  7 创建你的第一个jQuery 工程   什么是 Wijmo? Wijmo 是一个基于jQuery UI的UI部件的套件.Wijmo 部件对客户端Web开发进行了优化,并且充分利用了jQuery的强大能力

Wijmo 更优美的jQuery UI部件集:爱上 ThemeRoller

Wijmo 是一个基于jQuery UI的UI部件的套件.Wijmo最方便使用的特点之一就是兼容ThemeRoller.ThemeRoller 是一个创建独特的jQuery UI web 部件主题皮肤的web应用程序.凭借其简单的界面和所见即所得的预览功能,你可以用比使用图形编辑器更短的时间为你的Wijmo部件以及其他兼容ThemeRoller的部件创建皮肤.   拉开帷幕:ThemeRoller 基础 我们可以在这里找到ThemeRoller Web 应用程序 jqueryui.com/the

Wijmo 更优美的jQuery UI部件集:活动日历控件(Event Calendar)

Wijmo Event Calendar活动日历控件,是一个功能齐全的活动日历控件,允许用户添加,编辑和管理他们的日程.默认情况下,控件将使用Html5的Local Storage特性,进行离线数据存储,用户可以在不连接网路的情况下,使用网页来管理自己的日程,无需额外的配置. Wijmo Event Calendar支持用户自定义数据存储方式.Wijmo Event Calendar 控件在设计之初就将数据展现和数据存储进行分离,您可以使用amplify.store库,实现本地数据存储.然后设置

Wijmo 更优美的jQuery UI部件集:复合图表(CompositeChart)

Wijmo的CompositeChart控件允许您使用一个Chart来分析和展现复杂的数据.相同的数据可以使用不同的可视化效果,不同的图表类型展现在一个图表内,使得用户可以从不同的角度,了解分析这组数据所表达的内容 . 本文将介绍如何使用Wijmo的CompositeChart控件,制作一个复合图表.CompositeChart 的API:http://wijmo.com/wiki/index.php/Compositechart,Wijmo 的CompositeChart 化繁为简,将传统 E

Wijmo 更优美的jQuery UI部件集:在安全站点使用Wijmo控件

通常我们总会遇到这样的问题,在安全站点(HTTPS)中使用C1Wijmo控件时,用户可能会收到脚本错误. 发生这种状况的是由于我们的CDN链接不是https链接.   解决HTTPS 的错误 为了解决上述脚本问题,你需要使用本地的脚本文件,而不是使用网上CDN的链接.你可以使用以下解决方案之一: 解决方案1. 在设计视图下,取消选中C1Wijmo控件的SmartTag上的 "UseCDN"选项. 解决方案2. 你可以在网站配置文件中,明确地将该选项设置为false: <appSe

Wijmo 更优美的jQuery UI部件集:C1 Wijmo Grids 更多惊喜

本文中,我将给大家介绍一系列非常棒的 Wijmo Grids功能.我们先以一个新的Wijmo Grids 来开始我们这次的 Wijmo Grids 之旅吧.     <BR> <table id="tableDepartmentInformation"><BR> <thead><BR> <tr><BR> <th>First Name<BR> </th><BR&g

Wijmo 更优美的jQuery UI部件集:自定义 C1WijMenu

C1Wijmo 全部的控件是完全可定制的,并且可以根据你自己的需求定制他们的界面外观. 我准备使用C1Menu演示这一点. 让我们从向控件应用自定义主题开始.   改变主题 1) 创建一个网站,然后拖放一个C1Menu到web页面上. 2) 单击智能标记,并打开任务菜单. 3) 在主题属性中输入CDN的URL以指定主题. 例如,在我们的这个例子中,我们应用ui-darkness 主题 http://jquery-ui.googlecode.com/svn/tags/1.8.14/themes/u

Wijmo 更优美的jQuery UI部件集:客户端更改C1GridView数据源

很多时候,我们在使用 GridView 展示数据时,希望最终用户可以编辑数据并且同步到数据源中.这是一项繁琐的工作.我们需要自定义模板列,并且在后台手动获取更新值,最后使用 SQL 语句同步到数据库中.  但是,现在我们有了 C1 Wijmo GridView ,这些繁琐的工作都成为历史.C1GridView 仅仅通过一个属性-AllowClientEditing 便允用户在客户端编辑单元格内容. 需要编辑时,我们可以通过双击单元格使其进入编辑状态即可.完成编辑后,选择其它单元格去保存编辑值.