Asp.net 将gridview内容导出到excel电子表格

Asp.net 将gridview内容导出到excel电子表格,asp.net,vb.net,excel,gridview,export,Asp.net,Vb.net,Excel,Gridview,Export,我有一个gridvidew(GV2)。我希望用户能够将此gridview的内容导出到excel电子表格以进行脱机处理 这是我的子程序: Protected Sub ExcelButton_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ExcelButton.Click Response.ContentType = "application/vnd.ms-excel" Respo

我有一个gridvidew(GV2)。我希望用户能够将此gridview的内容导出到excel电子表格以进行脱机处理

这是我的子程序:

Protected Sub ExcelButton_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ExcelButton.Click
        Response.ContentType = "application/vnd.ms-excel"
        Response.Charset = ""
        Me.EnableViewState = False
        Dim stringWriter As New System.IO.StringWriter()
        Dim htmlWriter As New System.Web.UI.HtmlTextWriter(stringWriter)
        GV2.RenderControl(htmlWriter)
        Response.Write(stringWriter.ToString())
        Response.End()
    End Sub
单击EXCEL按钮时,我会收到错误消息:

必须将类型为“GridView”的控件“GV2”放置在带有runat=server的表单标记中。

控制装置GV2实际上位于:

 <form id="form1" runat="server"></form>

此错误消息后面有一个“”。我将直接讨论其中一个解决方案

将此添加到ASPX文件的代码隐藏中:

Public Overrides Sub VerifyRenderingInServerForm(control As Control)

End Sub
更多信息请点击此处:



谢谢你的帮助。我添加了上面的代码,现在得到:RegisterForEventValidation只能在Render()期间调用;我通过关闭事件验证解决了这个问题。。。。。通过将EnableEventValidation=“false”添加到@page指令。。。这是否存在任何潜在危险?@Phil,我假设您只关闭该特定页面的事件验证,您需要确保该页面的回发事件不会被劫持以执行非法或不必要的操作。