protected void Page_Load(object sender, EventArgs e)
{
todayDate.Text=DateTime.Now.toString();
}
输出
2011年9月28日上午10:28
当前时间永远不会更新,结果是静态的,如何在c#中设置间隔以更新当前时间?
更新信息
这是我的ajax更新计时器代码
<ajax:ToolkitScriptManager ID="scriptmanager1" runat="server">
<asp:UpdatePanel runat="server" id="TimedPanel" updatemode="Conditional">
<Triggers>
<asp:AsyncPostBackTrigger controlid="UpdateTimer" eventname="Tick" />
</Triggers>
<ContentTemplate>
<asp:Label runat="server" id="DateStampLabel" />
我使用
调用它protected void UpdateTimer_Tick(object sender, EventArgs e)
{
DateStampLabel.Text = DateTime.Now.ToString() + " "+DateTime.Today.DayOfWeek.ToString();
}
输出正是我想要的,但效果并不完全是我想要的,因为当用户点击某个按钮时,标签会闪烁,这就像告诉用户页面正在重新加载,所以我想知道任何想法都可以从服务器提供更新时间?或者只是刷新部分页面?
答案 0 :(得分:2)
它不更新的原因是因为ASP.Net是生成HTML的服务器代码,它在浏览器中显示。
浏览器向您的服务器发送请求,服务器在其中一个线程上执行您的页面逻辑,您的代码生成输出(在您的情况下,设置today.Data.Text在输出缓冲区中创建html),响应被发送到客户端,浏览器显示该html。你完成了。请求已经完成。
您需要继续刷新该页面(糟糕的 - 旧的完全刷新服务器生成的页面模型)或者具有在浏览器中运行的JavaScript代码。检查Ajax模式。
希望能够深入了解原因:)
答案 1 :(得分:0)
使用Ajax Extension
控件(UpdatePanel, Timer)。
答案 2 :(得分:0)
正如所建议的那样,如果这是您的意图,您需要使用客户端脚本来实时更新值。搜索“JavaScript时钟”或“Ajax时钟”应该会给你一些cut-n-paste代码,或者在他们的工具包中查看一些Ajax示例。