gridview导出excel时怎么不是导出表内容,而是把整个web页面全部导出来了,大家帮忙看看

newstarwxx 2006-09-13 11:23:07
导出的代码如下,vs05

Public Sub SaveAsFile(ByVal ctl As GridView, ByVal FileName As String)
Dim fname As String
fname = "attachment;filename=" + FileName + ".html"

Response.Clear()
Response.Buffer = True
Response.ContentType = "application/vnd.xls"
Response.AddHeader("content-disposition", fname)
Response.Charset = "gb2312"
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312")

Dim myCItrad As New System.Globalization.CultureInfo("ZH-CN", True)
Dim stringwrite As New System.IO.StringWriter(myCItrad)
Dim htmlwrite As New System.Web.UI.HtmlTextWriter(stringwrite)

GridView1.Page.EnableViewState = False
GridView1.RenderControl(htmlwrite)
Response.Write(stringwrite)
'Response.End()
End Sub

还有最后一句vresponse。end()会抱错,vgridview1不在runat=server标记内,而实际上标记是有的,form里也有该标记
...全文
484 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
iclife 2007-01-25
  • 打赏
  • 举报
回复
MARK
newstarwxx 2006-09-14
  • 打赏
  • 举报
回复
问题解决了,多谢,马上结贴
newstarwxx 2006-09-13
  • 打赏
  • 举报
回复
ctl.Page.EnableViewState = False
ctl.RenderControl(htmlwrite)
孟子E章 2006-09-13
  • 打赏
  • 举报
回复
拷贝即可运行的例子
http://blog.csdn.net/net_lover/archive/2006/09/13/1217998.aspx
newstarwxx 2006-09-13
  • 打赏
  • 举报
回复
GridView1.RenderControl(htmlwrite)

这一行,把gridview1换成任何界面的控件好像都导出全部页面,怎么才能只导gridview里面的数据呢,我不知道该怎么写怎么传
newstarwxx 2006-09-13
  • 打赏
  • 举报
回复
我是新手,net—lover你能不能说的明白一点,到底应该怎么写呢
孟子E章 2006-09-13
  • 打赏
  • 举报
回复

Partial Class Default2
Inherits System.Web.UI.Page

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Response.ClearContent()
Response.AddHeader("content-disposition", "attachment; filename=MyExcelFile.xls")
Response.ContentType = "application/vnd.xls"
Response.Charset = "gb2312"
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312")
Dim myCItrad As New System.Globalization.CultureInfo("ZH-CN", True)
Dim stringwrite As New System.IO.StringWriter(myCItrad)
Dim htmlwrite As New System.Web.UI.HtmlTextWriter(stringwrite)
GridView1.RenderControl(htmlwrite)
Response.Write(stringwrite.ToString())
Response.End()
End Sub

Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
If Not Page.IsPostBack Then
GridView1.DataSource = CreateDataSource()
GridView1.DataBind()
End If
End Sub
Function CreateDataSource() As ICollection
Dim dt As System.Data.DataTable = New System.Data.DataTable()
Dim dr As System.Data.DataRow
dt.Columns.Add(New System.Data.DataColumn("id", GetType(System.Int32)))
dt.Columns.Add(New System.Data.DataColumn("text", GetType(String)))
For i As Integer = 0 To 6
dr = dt.NewRow()
dr(0) = i
dr(1) = "列表项目 " + i.ToString()
dt.Rows.Add(dr)
Next
Dim dv As System.Data.DataView = New System.Data.DataView(dt)
Return dv
End Function


Public Overrides Sub VerifyRenderingInServerForm(ByVal control As System.Web.UI.Control)

End Sub
End Class


关键的地方你少了这行

Public Overrides Sub VerifyRenderingInServerForm(ByVal control As System.Web.UI.Control)

End Sub

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧