【发布时间】:2011-12-09 19:25:15
【问题描述】:
我有一个奇怪的问题,我有一个由计时器触发的更新面板。
我在这个页面上还有一个函数,它调用数据库并从中检索数据。该函数没有被更新面板调用,甚至没有与之相关。
问题是我在我的日志文件中看到,每次出现打勾并且更新面板正在更新时,还会调用我的数据库服务器(此函数在 page_Load 部分中)以再次检索数据。但是该页面似乎没有进行完整的回发(它保持不变并且看起来不像被重新加载)
我的代码:
<asp:Timer runat="server" id="UpdateTimer" interval="5000" ontick="UpdateTimer_Tick" />
<asp:UpdatePanel ID="UpdatePanel1" runat="server" UpdateMode="Conditional">
<Triggers>
<asp:AsyncPostBackTrigger controlid="UpdateTimer" eventname="Tick" />
</Triggers>
<ContentTemplate>
<span id="s1" runat="server"></span>
</ContentTemplate>
</asp:UpdatePanel>
和后面的代码:
protected void UpdateTimer_Tick(object sender, EventArgs e)
{
DateTime dt = TimeConvertor.getCurrentGameTime();
s1.InnerText = String.Format("Current game time: {0:dd/MM/yyyy HH:mm}", dt);
}
从数据库中检索数据的函数在页面的page_load中。
感谢任何帮助
谢谢
多伦
【问题讨论】:
-
设置InnerText后,尝试调用
UpdatePanel1.Update()。
标签: c# timer updatepanel postback