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更新)!
分享到:
相关推荐
NULL 博文链接:https://hugang357.iteye.com/blog/1564263
Wijmo Base on Jquery UI Widget
Wijmo jQuery 插件集
wijmo-JQuery插件,很强大的UI
Wijmo-Pro(基于jqueryUI提供了40+组件,强大的图标组件)
Wijmo是一个基于jQuery UI的UI部件的套件。Wijmo部件进行了优化客户端Web开发和利用jQuery的优越的性能和易用性的力量。所有的Wijmo部件都配备了20多个主题和支持ThemeRoller。 Wijmo主要特点 1.完全支持HTML5 ...
摘要:脚本资源,jQuery,Wijmo Wijmo是一个基于jQuery UI的组件集,有超过30多个jQuery UI 组件,是一个CSS3,SVG,HTML5的混合物,Wijmo开发了一系列包括图表、、Tab选项卡、滑动门、菜单、上传文件、柱型图、表单...
最领先的Web开发技术使用集 HTML5、jQuery、CSS3、和 SVG 多项技术于一体的 Wijmo 控件包进行开发,可以让您的 Web 应用系统紧跟当前的流行趋势,并能让您的 Web 应用程序拥有更快的执行速度、用户访问也更加流畅...
jQueryUI Widgets Why use Studio for ASP.NET Wijmo? One Technology for All ASP.NET Development Take on any project with a single technology that provides everything from pure client-side ...
Wijmo是一个基于jQuery UI的UI部件的套件,目前还处于beta阶段。Wijmo部件进行了优化客户端Web开发和利用jQuery的优越的性能和易用性的力量。所有的Wijmo部件都配备了20多个主题和支持ThemeRoller。 Wijmo主要特点 1...
Wijmo5 Flexgrid演示代码合集,打包发布 转载自官方网站.
ComponentOne Studio for ASP.NET Wijmo是基于jQuery和Wijmo的新一代Web控件。它提供完整的server端开发技术和非常丰富的富客户端UI能力。可用于多种设备:PC、笔记本、iPad、平板电脑、智能手机和移动终端。
jQueryUI Widgets Why use Studio for ASP.NET Wijmo? One Technology for All ASP.NET Development Take on any project with a single technology that provides everything from pure client-side ...
jQueryUI Widgets Why use Studio for ASP.NET Wijmo? One Technology for All ASP.NET Development Take on any project with a single technology that provides everything from pure client-side ...
jQueryUI Widgets Why use Studio for ASP.NET Wijmo? One Technology for All ASP.NET Development Take on any project with a single technology that provides everything from pure client-side ...
jQueryUI Widgets Why use Studio for ASP.NET Wijmo? One Technology for All ASP.NET Development Take on any project with a single technology that provides everything from pure client-side ...
☆ 资料说明:☆ ComponentOne Studio for ASP.NET Wijmo 专门为网页设计窗体而开发,功能强大,覆盖全面,是 ASP.NET 平台...- 增强的表格视图(GridView); - 树形视图(TreeView)滚动可视化; - 全新的产品示例;
Wijmo-Open.2.0.8.zip Wijmo jquery mobile js