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

时间:2013-01-01 03:24:57

标签: c# label

我一遍又一遍地搜索互联网,这似乎非常简单,但不知怎的,它不起作用。

我正在尝试在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 个答案:

答案 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;
}