0

グリッドビューを Excel にエクスポートする必要があります。ボタンクリックイベント関数で次のコードを使用しています:

Response.Clear();

Response.Buffer = true;

Response.AddHeader("Content-Disposition","attachment;filename=sample.xls");

Response.Charset = "";

Response.ContentType = "app`enter code here`lication/vnd.xls";

StringWriter stringWriter = new StringWriter();

HtmlTextWriter htw = new HtmlTextWriter(stringWriter);

grdVw.RenderControl(htw);

Response.Write(stringWriter.ToString());

Response.End();

これを実行すると、空の XML ファイルをダウンロードするダイアログ ボックスが表示されます。デバッグしようとすると、グリッドにデータがあることがわかりましたが、stringWriter に値が入力されていません。コンテンツ タイプを「application/ms-excel」などに変更しようとしましたが、結果は変わりません。コードのエラーは何ですか? また、stringWriter が入力されない理由は何ですか?

前もって感謝します

4

1 に答える 1

0

grdVw.RenderControl(htw);GridView がサーバー形式でレンダリングされなかったという例外が発生すると思います。

デバッガーで実行してみてください。その例外が表示されると確信しています。

VerifyRenderingInServerFormをオーバーライドすることで、この例外を回避できます。

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

ここここを参照してください。

于 2012-11-08T12:36:54.053 に答える