1

我一遍又一遍地搜索互联网,这似乎很简单,但不知何故它不起作用。

我正在尝试在 C# 中创建一个 Web 表单应用程序。Button1 应该从网站下载大量数据,我希望 Label1 在 Button1 中的代码运行时显示“正在下载”,并在代码完成后“完成”,但 Label1 在按钮单击后根本没有改变。

代码如下:

protected void Button1_Click(object sender, EventArgs e)
        {
            Label1.Text = "downloading";
            //code for downloading data
            Label1.Text = "done";
        }
4

4 回答 4

2

那是行不通的。这就是所有服务器端代码。直到 Button1_Click 处理程序完成执行后,更新的 HTML 才会发送回浏览器。所以浏览器只会看到“完成”标签文本。永远不要“下载”文本。

达到您想要的效果的最简单方法是在提交表单之前使用客户端javascript(可能使用jquery)将标签文本更新为“正在下载”。您可以将客户端 javascript 放在 asp.net 按钮的 OnClientClick 属性中。然后,服务器端代码可以下载数据并将标签文本更改为完成。

于 2013-01-01T03:30:45.030 回答
0

我不知道这是否仍然有用,因为这篇文章已经很老了,但是我在寻找自己问题的答案时偶然发现了这个问题。

更改标签文本后,只需使用 Label1.Update() 函数。

于 2014-04-15T10:48:41.873 回答
0

如果您想将文本从下载更改为完成,那么您可以这样做:

Label lbl = (Label)this.FindControl("Label1");
                    if (lbl != null)
                    {
                        lbl.Text =  "done";
                    }
于 2018-07-31T08:41:15.853 回答
-1
protected void Button1_Click(object sender, EventArgs e)
{
    Label1.Text = "downloading";
    //code for downloading data
    Label1.Text = "done";
    Label1.Refresh;
}
于 2013-11-12T12:13:36.683 回答