[問題] asp.net using c#匯出csv

看板C_Sharp (C#)作者 (沒有名字的怪物)時間7年前 (2017/11/15 21:39), 編輯推噓2(204)
留言6則, 5人參與, 7年前最新討論串1/1
最近要把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("&nbsp;", "-"); 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

11/16 01:00, 7年前 , 1F
有考慮用NPOI嗎?
11/16 01:00, 1F

11/16 01:21, 7年前 , 2F
你gridview內容是user輸入的嗎? 假如不是 僅是從資料庫撈出
11/16 01:21, 2F

11/16 01:22, 7年前 , 3F
可考慮做一個ashx之類 用js的非同步方式提供給user
11/16 01:22, 3F

11/16 07:29, 7年前 , 4F
是user輸入再撈出顯示在gridvew
11/16 07:29, 4F

11/20 16:12, 7年前 , 5F
你把匯出CSV的按鈕設定為PostBackTrigger就可以了
11/20 16:12, 5F

11/25 17:59, 7年前 , 6F
將匯出的按鈕設定為postback trigger試試看
11/25 17:59, 6F
文章代碼(AID): #1Q34E0TB (C_Sharp)
文章代碼(AID): #1Q34E0TB (C_Sharp)