2010-02-25 6 views
1

У меня есть gridvidew (GV2). Я хочу, чтобы пользователь мог экспортировать содержимое этого gridview в таблицу Excel для автономной обработки.Экспорт содержимого 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 

На щелкая ExcelButton я получаю сообщение об ошибке:

Control 'GV2' типа 'GridView' должны быть помещено внутри тега формы с Runat = сервер.

управления GV2 фактически внутри:

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

ответ

2

Там в 'story' за это сообщение об ошибке. Я пойду прямо к одному из решений.

Добавьте к этому отделенного кода файла ASPX:

Public Overrides Sub VerifyRenderingInServerForm(control As Control) 

End Sub 

Больше информации здесь:

How to export GridView to Word using ASP.NET 2.0 and VB
CodeSnip: Exporting GridView to Excel

+0

Спасибо за помощь. Я добавил код выше и теперь получаю: RegisterForEventValidation можно вызывать только во время Render(); – Phil

+0

Я решил это, отключив проверку событий ..... добавив EnableEventValidation = "false" в директиву @page ... Означает ли это какие-либо потенциальные опасности? – Phil

+0

@Phil, я предполагаю, что вы только отключите проверку событий для этой конкретной страницы, вам нужно убедиться, что событие обратной передачи для этой страницы не будет захвачено для выполнения незаконных или нежелательных операций. –

Смежные вопросы