我的网页上有一个向我传递消息的功能。该函数将标签更改为消息,但是3秒钟后,我希望标签隐藏或已分配“”值。在控制台中,文本值更改,但在网页中 它保持不变。
private void notify(string msg)
{
notification.Text = msg;
System.Threading.Timer timer = null;
timer = new System.Threading.Timer((obj) =>
{
bar();
timer.Dispose();
},
null, 3000, System.Threading.Timeout.Infinite);
}
private void bar()
{
notification.Text="";
System.Diagnostics.Debug.WriteLine(notification.Text); //Output ""
}
答案 0 :(得分:0)
那呢, 您将必须使用javascript在客户端上使用 setInterval(func,3000)。在这种情况下,当调用Notify时,客户端将在3000秒后隐藏到Label。请使用以下代码>
设计文件(.aspx)
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script>
function Hide()
{
document.getElementById("notification").hidden = true;
}
setInterval(Hide, 3000);
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Label ID="notification" runat="server" Text="Label"></asp:Label>
</div>
</form>
</body>
</html>
代码文件(.cs),当它在服务器端调用notify方法时。我正在调用Page_Load,这将是您自己的选择。
protected void Page_Load(object sender, EventArgs e)
{
notify("ok");
}
private void notify(string msg)
{
notification.Text = msg;
}