导出为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("\r\n"); 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("\r\n"); } 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
框架,这是肯定的。
- 如何解密Web API 2 JWT令牌?
- System.Uri类截断尾随’。’ 人物
- HttpContext.HideRequestResponse的内部解决方法是什么? 检测HttpContext.Request是否真的可用?
- Asp.Net Identity和多种登录机制
- 完成ASP.NET页面加载后运行javascript函数
- 我如何使用另一个身份在asp.net中执行我的代码,前提是我有一个用户名和密码
- asp.net使用URL路由时用户控件的多个Page_Load事件
- 无法建立连接,因为目标计算机主动拒绝它127.0.0.1
- 如何在clientSide和ServerSide中使用selectedIndexChanged下拉列表