2009-05-26 5 views
0

Я пытаюсь экспортировать datagrid в excel. По какой-то причине известные методы работы не работают. Экспорт осуществляется из пользовательского элемента управления. Моя страница (default.aspx) использует главную страницу, и на странице есть пользовательский элемент управления, на самом деле есть файл данных, который я пытаюсь экспортировать.Вопросы экспорта datagridview в excel

Вот мой код на ASCX:

Response.ClearContent(); 
Response.AddHeader("content-disposition", "attachment; filename=MyExcelFile.xls"); 
Response.ContentType = "application/excel"; 
StringWriter sw = new StringWriter(); 
HtmlTextWriter htw = new HtmlTextWriter(sw); 
_gvwResults.RenderControl(htw); 
Response.Write(sw.ToString()); 
Response.End(); 

На моей default.aspx (страница трюмах в ASCX) этот код:

public override void VerifyRenderingInServerForm(Control control) 
{ 
    /* Confirms that an HtmlForm control is rendered for the specified ASP.NET 
     server control at run time. - required to export file */ 
} 

Вот ошибка я получаю: Sys. Webforms.pagerequestmanagerparsererrorexception. Сообщение, полученное с сервера, не может быть проанализировано. Общими причинами этой ошибки являются изменение ответа на вызовы Response.Write(), фильтры ответов, httpmodules или трассировка сервера.

Любые идеи? Этот код должен работать, но почти так, как будто объект ответа не очищается. Идеи?

ответ

0

Оказывается, что с тех пор, как поле со списком было добавлено, экспорт не происходил. Событие увольнялось, но, как говорится в сообщении об ошибке, это была реакция. Запись на существующую страницу, таким образом бросая ошибку, которая не позволяла бы визуализировать новый документ (xls в этом случае). После того, как вы установили комбобокс, чтобы сделать обратную передачу на странице и неактивировать его, экспорт начал работать.

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