在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";
        }

在c# web表单中以编程方式更改标签文本

这行不通。这些都是服务器端代码。在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;
}