作者areyo (沒有名字的怪物)
看板C_Sharp
標題[問題] asp.net using c#匯出csv
時間Wed Nov 15 21:39:08 2017
最近要把gridview內容匯出,但遇到個怪問題,有什麼解決辦法
可以兼顧效能,謝謝
環境 : asp.net with C#
附圖 :
https://goo.gl/Z7nRFN
紅框內用updatepanel包住,gridview也是 (updatepanel沒有設定其它條件)
Q1.當元件都在updatepanel內,我按匯出csv都沒反應,但是切換下拉選單很快速
Q2.若不用updatepanel,可以正常匯出CSV,但是每當我切換下拉選單時,會很久(畫面左下角會出現載入中 ??%)
感覺網頁卡很久,當掉
-------匯出CSV func-----------
void ToCSV2()
{
Response.Clear();
//Response.Charset = "BIG5";
Response.ContentEncoding = Encoding.GetEncoding(950);//950就是所謂的BIG5
Response.Buffer = true;
Response.AddHeader("content-disposition",
"attachment;filename=GridViewExport.csv");
Response.ContentType = "application/text";
GridView2.AllowPaging = false;
StringBuilder sb = new StringBuilder();
for (int k = 0; k < GridView2.Columns.Count; k++)
{
//add separator
sb.Append(GridView2.Columns[k].HeaderText + ',');
}
sb.Append("\r\n");
string tmpStr = "";
for (int i = 0; i < GridView2.Rows.Count; i++)
{
for (int k = 0; k < GridView2.Rows[i].Cells.Count; k++)
{
//add separator
tmpStr = GridView2.Rows[i].Cells[k].Text.Replace(" ", "-");
tmpStr = tmpStr.Replace(",", " / ");
sb.Append(tmpStr + ',');
}
//append new line
sb.Append("\r\n");
}
Response.Output.Write(sb.ToString());
Response.Flush();
Response.End();
}
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.174.245.134
※ 文章網址: https://www.ptt.cc/bbs/C_Sharp/M.1510753152.A.74B.html
推 kisha024: 有考慮用NPOI嗎? 11/16 01:00
推 totte: 你gridview內容是user輸入的嗎? 假如不是 僅是從資料庫撈出 11/16 01:21
→ totte: 可考慮做一個ashx之類 用js的非同步方式提供給user 11/16 01:22
→ areyo: 是user輸入再撈出顯示在gridvew 11/16 07:29
→ zg0608x: 你把匯出CSV的按鈕設定為PostBackTrigger就可以了 11/20 16:12
→ Ammenze: 將匯出的按鈕設定為postback trigger試試看 11/25 17:59