All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
js判断时间格式是否有效!_JavaScript技术_编程技术
PHP正则表达式使用的方法_[PHP教程]
Asp.Net,XML操作基类_.net资料_编程技术
PHP和MySQL基础教程(二)_[PHP教程]
一步步教你配置SQL SERVER合并复制(二)建立域用户_[SQL Server教程]
.net控件开发(十一)之.net设计期功能,第一部分_[Asp.Net教程]
“三熟悉”用好SQL Server命令_[SQL Server教程]
PHP,开发中的中文编码问题_php资料_编程技术
想学ASP.NET,来看看一些建议_.net资料_编程技术
什么样的网页设计是合理的网页设计?_[Html教程]
Reading number is top 10 pictures
Small s breast enhancement demonstration
Female model behind the bitterness, often being overcharged2
This is heaven to some path
初五接财神啦!五路财神齐来到
恶搞漫画1
来几张有特色的图片
Sora aoi in China4
29 the belle stars after bath figure4
The world first motorcycle will be auctioned for 21000 pounds
9.3阅兵全景图8-航空梯队
Download software ranking
Tram sex maniac 2 (H) rar bag5
jdk1.5
C#程序员参考手册
Ashlynn Video3
少妇苏霞全本
dreamweaver8中文版
双旗镇刀客A
天龙八部最新服务端
传奇私服架设教程-chm
DreamWeaver8
归海一刀 published in(发表于) 2014/1/30 1:10:24 Edit(编辑)
扩展,GridView,控件,-,支持,Excel,及,Word,汇出_[Asp.Net教程]

扩展,GridView,控件,-,支持,Excel,及,Word,汇出_[Asp.Net教程]

扩展 GridView 控件 - 支持 Excel 及 Word 汇出_[Asp.Net教程]

摘要
GridView 汇出 Excel 及 Word 文件是蛮常使用的需求,此篇文章将扩展 GridView 控件提供汇出 Excel 及 Word 文件的方法。一般在 GridView 汇出的常见下列问题也会在此一并被解决。
GridView 汇出的常见问题:
问题1. GridView 使用 RenderControl 方法产生的错误。
问题2. GridView 分页的问题。
问题3. 汇出文件名称产生乱码的问题。
问题4. 汇出内容产生乱码的问题。


解决 GridView 汇出问题
我们先针对 GridView 汇出的问题,逐一处理解决


问题1. GridView 使用 RenderControl 方法产生的错误。
此问题参考上篇「使用 BasePage 来解决 GridView 执行 RenderControl 产生的错误」来解决。

问题2. GridView 分页的问题。
在执行汇出时,若 GridView 有使用分页(AllowPaging=True),则采下列步骤处理。
Step1.取消分页,即设定 GridView.AllowPaging=False。
Step2.GridView 执行 DataBind,使其重新系结所有数据,再使用 RenderCotnrol 输出 HTML 程序代码。
Step3.还原分页,即设定 GridView.AllowPaging=True。


问题3. 汇出文件名称产生乱码的问题。
针对此问题,只需将文件名称经 UrlEncode 编码,即可解决中文文件名的问题。
HttpUtility.UrlEncode(FileName, Encoding)

问题4. 汇出内容产生乱码的问题。
使用 Response 输出 来解决内容乱码的问。

扩展 GridView 控件
我们继承 GridView 命名为 TBGridView,其中新增 Export、ExportExcel、ExportWord 等汇出方法。


1Imports System
2Imports System.Collections.Generic
3Imports System.ComponentModel
4Imports System.Text
5Imports System.Web
6Imports System.Web.UI
7Imports System.Web.UI.WebControls
8Imports System.Drawing
9
10Namespace WebControlsNamespace WebControls
11 < _
12 Description("TBGridView 控件"), _
13 ToolboxData("<{0}:TBGridView runat=server>") _
14 > _
15 Public Class TBGridViewClass TBGridView
16 Inherits GridView
17
18 /**/'''


19 ''' GridView 控件汇出 Excel 文件。
20 '''

21 Public Sub ExportExcel()Sub ExportExcel()
22 Export(Encoding.UTF8, "gridview.xls", "application/ms-excel")
23 End Sub
24
25 /**/'''
26 ''' GridView 控件汇出 Word 文件。
27 '''

28 Public Sub ExportWord()Sub ExportWord()
29 Export(Encoding.UTF8, "gridview.doc", "application/ms-word")
30 End Sub
31
32 /**/'''
33 ''' GridView 控件汇出。
34 '''

35 ''' 编码方式。
36 ''' 文件名称。
37 ''' 内容类型标头。
38 Public Sub Export()Sub Export(ByVal Encoding As Encoding, ByVal FileName As String, ByVal ContentType As String)
39 Dim oResponse As HttpResponse
40 Dim oStringWriter As System.IO.StringWriter
41 Dim oHtmlWriter As System.Web.UI.HtmlTextWriter
42 Dim bAllowPaging As Boolean
43 Dim sText As String
44 Dim sFileName As String
45
46 If TypeOf Me.Page Is TBBasePage Then
47 DirectCast(Me.Page, TBBasePage).IsVerifyRender = False '页面不需验证控件
48 End If
49
50 '文件名称需经 UrlEncode 编码,解决中文文件名的问题
51 sFileName = HttpUtility.UrlEncode(FileName, Encoding)
52
53 oResponse = HttpContext.Current.Response
54 oResponse.Clear()
55 sText = ""
56 sText = String.Format(sText, Encoding.WebName)
57 oResponse.Write(sText)
58 oResponse.AddHeader("content-disposition", "attachment;filename=" & sFileName)
59 oResponse.ContentEncoding = Encoding
60 oResponse.Charset = Encoding.WebName
61 oResponse.ContentType = "application/ms-excel"
62
63 ' If you want the option to open the Excel file without saving than
64 ' comment out the line below
65 ' oResponse.Cache.SetCacheability(HttpCacheability.NoCache)
66
67 oStringWriter = New System.IO.StringWriter()
68 oHtmlWriter = New System.Web.UI.HtmlTextWriter(oStringWriter)
69 bAllowPaging = Me.AllowPaging
70 If bAllowPaging Then
71 Me.AllowPaging = False
72 If Me.RequiresDataBinding Then
73 Me.DataBind()
74 End If
75 End If
76
77 Me.RenderControl(oHtmlWriter)
78
79 If bAllowPaging Then
80 AllowPaging = bAllowPaging
81 End If
82 oResponse.Write(oStringWriter.ToString())
83 oResponse.End()
84 End Sub
85
86 End Class
87End Namespace
测试程序
在页面放置一个 GridView 控件系结数据并设定分页,另外放置二个按钮分别做「汇出 Excel 文件」及「汇出 Word 文件」的动作。



汇出按钮撰写的程序代码如下


1 Protected Sub btnExcportExcel_Click()Sub btnExcportExcel_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnExcportExcel.Click
2 GridView1.ExportExcel()
3 End Sub
4
5 Protected Sub btnExportWord_Click()Sub btnExportWord_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnExportWord.Click
6 GridView1.ExportWord()
7 End Sub
汇出 Excel 文件的结果如下所示



汇出 Word 文件的结果如下所示



来源:http://www.cnblogs.com/jeff377







添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.