2009-05-26 10 views
0

私はExcelにデータグリッドをエクスポートしようとしています。何らかの理由で、既知の作業方法が機能していません。エクスポートはユーザーコントロールから実行されます。私のページ(default.aspx)はマスターページを使用し、ページにはエクスポートしようとしているデータグリッドが実際にあるユーザーコントロールがあります。ここでexcelにdatagridviewをエクスポートする問題

はascxファイルに私のコードです:私のdefault.aspxをオン

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(); 

(ページインクルードはascxファイルを保持している)、このコードです: のSys:

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 */ 
} 

ここで私が受信エラーです。 Webforms.pagerequestmanagerparserererrexception。サーバーから受信したメッセージは解析できません。このエラーの一般的な原因は、Response.Write()、応答フィルター、httpmodulesまたはサーバートレースの呼び出しによって応答が変更された場合です。

アイデア?このコードはうまくいくはずですが、応答オブジェクトがクリアされていないかのようです。アイデア?

答えて

0

コンボボックスが有効になっているため、エクスポートが実行されていないことが分かります。イベントは発生していましたが、エラーメッセージに示されているように、既存のページにresponse.writingしてエラーをスローしました。この場合、新しいドキュメント(この場合はxls)はレンダリングできません。コンボボックスを設定してページのポストバックを行い、それを解除すると、エクスポートが開始されました..

関連する問題