Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# HttpContext取消标签中的文本_C#_Asp.net - Fatal编程技术网

C# HttpContext取消标签中的文本

C# HttpContext取消标签中的文本,c#,asp.net,C#,Asp.net,在我的ASP.NET应用程序中,我有一个简单的btnPullDataIntoCsv_Click方法,它可以将某些内容打印到标签中,从SQL Server表下载数据并推入csv,如: protected void btnPullDataIntoCsv_Click(object sender, EventArgs e) { lblUserMessage.Text = String.Empty; PullData p = new PullData();

在我的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();
            }
        }
public void pulldataintocvs()
{
StringBuilder sb=新的StringBuilder();
使用(SqlConnection con=newsqlconnection(cs))
{
SqlDataAdapter da=新的SqlDataAdapter(@“从某个表中选择*”,con);
da.填充(dt);
string[]columnNames=dt.Columns.Cast()。
选择(column=>column.ColumnName)。
ToArray();
sb.AppendLine(string.Join(“,”,columnNames));
foreach(数据行中的数据行)
{
string[]fields=row.ItemArray.Select(field=>field.ToString())。
ToArray();
sb.AppendLine(string.Join(“,”字段));
}
HttpContext=HttpContext.Current;
context.Response.Write(sb.ToString());
context.Response.ContentType=“text/csv”;
context.Response.AddHeader(“内容处置”、“附件;文件名=someData.csv”);
context.Response.End();
}
}

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

lblUserMessage.Text
我如何避免在pulldataintocsv方法中阻塞UI线程?@CodeCaster在这种情况下,我认为Igor的解释更准确。此代码将永远不会更新UI,因为响应将转换为文件下载。只需最少的代码更改,最简单的方法是将单击事件转换为下载功能,然后使用纯javascript或jquery库清除表单上文本框的值。@ADyson-heh,我想我错过了这个问题的ASP.NET部分,谢谢。