作者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://webptt.com/cn.aspx?n=bbs/C_Sharp/M.1510753152.A.74B.html
1F:推 kisha024: 有考虑用NPOI吗? 11/16 01:00
2F:推 totte: 你gridview内容是user输入的吗? 假如不是 仅是从资料库捞出 11/16 01:21
3F:→ totte: 可考虑做一个ashx之类 用js的非同步方式提供给user 11/16 01:22
4F:→ areyo: 是user输入再捞出显示在gridvew 11/16 07:29
5F:→ zg0608x: 你把汇出CSV的按钮设定为PostBackTrigger就可以了 11/20 16:12
6F:→ Ammenze: 将汇出的按钮设定为postback trigger试试看 11/25 17:59