我一遍又一遍地搜索互联网,这似乎非常简单,但不知怎的,它不起作用。
我正在尝试在C#中创建一个Web表单应用程序。 Button1应该从网站下载大量数据,我希望Label1在Button1中的代码运行时显示“下载”,在代码完成后显示“完成”,但是按钮点击后Label1根本没有变化。
代码如下:
protected void Button1_Click(object sender, EventArgs e)
{
Label1.Text = "downloading";
//code for downloading data
Label1.Text = "done";
}
答案 0 :(得分:2)
那不行。这是所有服务器端代码。在完成Button1_Click处理程序执行之后,更新的HTML不会发送回浏览器。因此浏览器只会看到“完成”标签文本。从来没有“下载”文本。
实现所需效果的最简单方法是在提交表单之前使用客户端javascript(可能使用jquery)将标签文本更新为“下载”。您可以将客户端javascript放在asp.net按钮的OnClientClick属性中。然后,服务器端代码可以下载数据并将标签文本更改为已完成。
答案 1 :(得分:0)
我不知道这是否仍然有用,因为该帖子相当陈旧,但我在寻找自己问题的答案时偶然发现了这个问题。
更改标签的文本后,只需使用Label1.Update()函数。
答案 2 :(得分:0)
如果要将文本从下载更改为完成,则可以执行以下操作:
Label lbl = (Label)this.FindControl("Label1");
if (lbl != null)
{
lbl.Text = "done";
}
答案 3 :(得分:-1)
protected void Button1_Click(object sender, EventArgs e)
{
Label1.Text = "downloading";
//code for downloading data
Label1.Text = "done";
Label1.Refresh;
}