利用Asp.net自带的Ajax控件,实现简单的动态显示时间的页面。
前台代码如下:
<body>
<form id="form1" runat="server">
<div>
<asp:ScriptManager ID="ScriptManager1" runat="server"></asp:ScriptManager>
<asp:Timer ID="Timer1" Interval="1000" runat="server" OnTick="Timer1_Tick"></asp:Timer>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
<ContentTemplate>
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label>
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" />
</Triggers>
</asp:UpdatePanel>
</div>
</form>
</body>
后台代码主要是OnTick的响应:
protected void Timer1_Tick(object sender, EventArgs e)
{
Label1.Text = DateTime.Now.ToString();
}
简单分析其中原理如下。
在Asp.Net中要用到Ajax,需要添加主要控件ScriptManager和UpdatePanel控件,官方文档指出ScriptManager无须做处理,主要是进行一个声明而已,懒人可以不用去管这个控件。主要是把精力集中在UpdatePanel控件上,其中有两个设置,一个是ContentTemplate,主要是需要更新的内容,可以是任意asp.net的服务器控件;另一个是Trigglers,为一个触发响应,其中又包括异步更新AsyncPostBackTrigger和回传更新PostBackTrigger。
上述代码实验主要是实现异步更新,将其中的ControlID设置为Timer控件ID,表明在通过Timer控件设置的值进行异步响应,响应的事件为Timer的OnTick事件。