Я предлагаю вам использовать asp: Timer
, вы можете разместить этот таймер внутри или снаружи панели обновлений.если вы поместите его в панель обновления, вам не придется самостоятельно обрабатывать триггер.каждый пост обратно в upatepanel станет Async.но если вы поставите его в стороне, вы должны назначить триггер.
вот примеры кодов для вашего aspx:
<asp:UpdatePanel runat="server" ID="UPanel1">
<ContentTemplate>
<asp:Label ID="MessageLabel" runat="server" ForeColor="Red" Font-Size="X-Large" />
</ContentTemplate>
<Triggers>
<asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" />
</Triggers>
</asp:UpdatePanel>
<asp:Timer ID="Timer1" runat="server" OnTick="Timer1_Clicked" Interval="1000" />
, в то время как его легче поместить в панель обновлений:
<asp:UpdatePanel runat="server" ID="UPanel1">
<ContentTemplate>
<asp:Label ID="MessageLabel" runat="server" ForeColor="Red" Font-Size="X-Large" />
<asp:Timer ID="Timer1" runat="server" OnTick="Timer1_Clicked" Interval="1000" />
</ContentTemplate>
</asp:UpdatePanel>
теперь на стороне c #, вы должны написать метод обработчика событий, подобный этому:
private static int counter = 0;
protected void Timer1_Clicked(object sender, EventArgs e)
{
//DO YOUR WORK WITH DATABASE HERE INSTEAD OF THIS CODE
if (++counter < 5)
return;
MessageLabel.Text = "Tadaaaaaah";
}
в этом примере, через 5 секунд на экране появится тадаааа.Вы должны обновить свою панель в этом обработчике событий.т.е. установить текст метки.Я надеюсь, что у вас есть проблема правильно.