导出为CSV时Gridview为空行
关于这个问题的进一步讨论促成了这个问题 。
以下是我用于创建CSV文件的例程。 一切都很好,除了我只获得列标题而没有行。
protected void CSVReport_Click(object sender, EventArgs e) { Response.Clear(); Response.Buffer = true; Response.AddHeader("content-disposition", "attachment;filename=PeopleReportTest.csv"); Response.Charset = ""; Response.ContentType = "text/csv"; Response.AddHeader("Pragma", "public"); GridView1.AllowSorting = false; GridView1.AllowPaging = false; GridView1.DataBind(); StringBuilder sb = new StringBuilder(); for (int k = 1; k < GridView1.Columns.Count; k++) { //add separator sb.Append(GridView1.Columns[k].HeaderText + ','); } //append new line sb.Append("rn"); for (int i = 0; i < GridView1.Rows.Count; i++) { for (int k = 1; k < GridView1.Columns.Count; k++) { //add separator sb.Append(GridView1.Rows[i].Cells[k].Text + ','); } //append new line sb.Append("rn"); } Response.Output.Write(sb.ToString()); Response.Flush(); Response.End(); }
在检查时,我可以看到GridView1.Rows[i].Cells[k].Text
总是返回一个空值。
所以问题可能在于我的gridview的结构。 我知道如果我有TemplateFields
代码将不起作用,但我只有一个,它被设置为不可见。
所有其他字段都是DynamicFields
。 这可能是问题吗?
这是标记:
There are currently no items in this table.
好的,我发现了问题所在。
我找不到其他类似的场景,所以我回答了我自己的问题,万一有人会发现它有用。
解决方案只是用标准的BoundFields
和BOOM替换我所有的DynamicFields
所有的数据。
下次我不会使用DynamicData
框架,这是肯定的。
上述就是C#学习教程:导出为CSV时Gridview为空行分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/988848.html