在c# web表单中以编程方式更改标签文本
本文关键字:方式更 标签 文本 编程 web 表单 | 更新日期: 2023-09-27 17:50:07
我在网上搜索了一遍又一遍,这似乎很简单,但不知何故它不工作。
我试图在c#中创建一个web表单应用程序。Button1应该从一个网站下载大量的数据,我想Label1显示"下载",而在Button1的代码运行,并"完成"代码完成后,但Label1是不改变在按钮点击后。
代码如下:
protected void Button1_Click(object sender, EventArgs e)
{
Label1.Text = "downloading";
//code for downloading data
Label1.Text = "done";
}
这行不通。这些都是服务器端代码。在Button1_Click处理程序完成执行之前,更新的HTML不会发送回浏览器。因此浏览器将只看到"done"标签文本。千万不要写"正在下载"
实现预期效果的最简单方法是在提交表单之前使用客户端javascript(可能使用jquery)将标签文本更新为"正在下载"。你可以把你的客户端javascript放在asp.net按钮的OnClientClick属性中。然后,服务器端代码可以下载数据并将标签文本更改为done。
我不知道这是否还会有帮助,因为这篇文章相当老了,但是我在寻找我自己问题的答案时偶然发现了这个问题。
只需在更改标签的文本后使用Label1.Update()函数
如果你想把文本从download 改为done,那么你可以这样做:
Label lbl = (Label)this.FindControl("Label1");
if (lbl != null)
{
lbl.Text = "done";
}
protected void Button1_Click(object sender, EventArgs e)
{
Label1.Text = "downloading";
//code for downloading data
Label1.Text = "done";
Label1.Refresh;
}