首页 > 解决方案 > HttpContext 取消标签中的文本

问题描述

我在我的 ASP.NET 应用程序中有简单的 btnPullDataIntoCsv_Click 方法,该方法将某些内容打印到标签中,从 SQL Server 表下载数据并推送到 csv 中,如下所示:

protected void btnPullDataIntoCsv_Click(object sender, EventArgs e)
    {
        lblUserMessage.Text = String.Empty;
        PullData p = new PullData();

        // Print something into label
        lblUserMessage.Text = "I'm printing text into label.";
        lblUserMessage.ForeColor = System.Drawing.Color.Blue;
        lblUserMessage.Font.Bold = true;

        // pull the data from sql table into csv
        p.pullDataIntoCsv(start, stop);
    }

PullData 类中的 pullDataIntoCsv 方法只是从 SQL Server 表中下载数据并将数据推送到 csv 中。

public void pullDataIntoCsv()
        {
            StringBuilder sb = new StringBuilder();
            using (SqlConnection con = new SqlConnection(cs))
            {
                SqlDataAdapter da = new SqlDataAdapter(@"select * from someTable", con);
                da.Fill(dt);

                string[] columnNames = dt.Columns.Cast<DataColumn>().
                                                  Select(column => column.ColumnName).
                                                  ToArray();
                sb.AppendLine(string.Join(",", columnNames));

                foreach (DataRow row in dt.Rows)
                {
                    string[] fields = row.ItemArray.Select(field => field.ToString()).
                                                    ToArray();
                    sb.AppendLine(string.Join(",", fields));
                }

                HttpContext context = HttpContext.Current;

                context.Response.Write(sb.ToString());
                context.Response.ContentType = "text/csv";
                context.Response.AddHeader("Content-Disposition", "attachment; filename=someData.csv");
                context.Response.End();
            }
        }

不知道为什么,但是当我触发 btnPullDataIntoCsv_Click 方法时,我看不到标签中的文本。我在这方面很新,所以请给我一个提示我做错了什么或我的代码中缺少什么?

标签: c#asp.net

解决方案


推荐阅读