2017-03-27 12 views
2

でExcelファイルにダウンロード中に何も表示されません。次のコードを使用してデータテーブルからExcelファイルをダウンロードします。しかし、私は別のサンプル・ページで同じコードスニペットを試してみました、それがうまく機能している...それはまだファイルをダウンロードしないで、すべてのコードを通過しているASPおよびC#

private void DumpExcel(DataTable tbl) 
    { 
     try 
     { 
      string attachment = "attachment; filename=StocksHistReport.xls"; 
      Response.ClearContent(); 
      Response.AddHeader("content-disposition", attachment); 
      Response.ContentType = "application/vnd.ms-excel"; 
      string tab = ""; 
      foreach (DataColumn dc in tbl.Columns) 
      { 
       Response.Write(tab + dc.ColumnName); 
       tab = "\t"; 
      } 
      Response.Write("\n"); 
      int i; 
      foreach (DataRow dr in tbl.Rows) 
      { 
       tab = ""; 
       for (i = 0; i < dt.Columns.Count; i++) 
       { 
        Response.Write(tab + dr[i].ToString()); 
        tab = "\t"; 
       } 
       Response.Write("\n"); 
      } 

      //Response.BuffferOutput = True; 

      HttpContext.Current.Response.Flush(); 
      HttpContext.Current.Response.SuppressContent = true; 
      HttpContext.Current.ApplicationInstance.CompleteRequest(); 

      //Response.Flush(); 
      //Response.Close(); 
     } 
     catch (Exception ex) 
     { 
      lblMsg.Text = ex.Message; 
      Page.ClientScript.RegisterStartupScript(GetType(), "msgbox", "alert('" + ex.Message + "');", true); 
     } 
    } 

を実行中に、データ・テーブルに値を持っている...

私はWeb設定ファイルで問題が起こっていると思います。参考までに私もそれをコピーしています。

<appSettings> 
     <add key="ChartImageHandler" value="storage=file;timeout=20;deleteAfterServicing=false;privateImages=false" /> 
    </appSettings> 
    <system.web> 
     <compilation debug="true" targetFramework="4.5"> 
      <assemblies> 
       <add assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35"/> 
      </assemblies> 
     </compilation> 
     <httpHandlers> 
      <add path="ChartImg.axd" verb="GET,HEAD,POST" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" validate="false"/> 
     </httpHandlers> 
     <pages> 
      <controls> 
       <add tagPrefix="asp" namespace="System.Web.UI.DataVisualization.Charting" assembly="System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35"/> 
      </controls> 
     </pages> 
    </system.web> 
    <system.webServer> 
     <handlers> 
      <remove name="ChartImageHandler" /> 
      <add name="ChartImageHandler" preCondition="integratedMode" verb="GET,HEAD,POST" 
       path="ChartImg.axd" type="System.Web.UI.DataVisualization.Charting.ChartHttpHandler, System.Web.DataVisualization, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" /> 
     </handlers> 
     <validation validateIntegratedModeConfiguration="false" /> 
    </system.webServer> 

どのような理由が考えられますか? Webの設定に問題がある場合、私は間違っていますか?

+0

あなたはエラーが発生しませんか?あなたのコードをトレースしましたか? – Valkyrie

+0

エラーはありません。 スレッドを取得する前に、例外が中止され、Response.End()がHttpContext.Current.Response.Flush()に置き換えられました。 HttpContext.Current.Response.SuppressContent = true; HttpContext.Current.ApplicationInstance.CompleteRequest(); – Developer

答えて

1

これはすべての問題を引き起こしていたアップデートパネルでしたが、私はそれを削除して現在動作しています。

関連する問題