2016-09-05 2 views
1

Мне нужно показать дату и таймер в моем проекте. и я использую код:как остановить обратную передачу при вызове управления таймером

<asp:ScriptManager ID="sc2" runat="server"></asp:ScriptManager> 
<asp:UpdatePanel ID="up1" runat="server" UpdateMode="Conditional"> 
    <Triggers> 
     <asp:AsyncPostBackTrigger ControlID="UpdateTimer" EventName="Tick" /> 
    </Triggers> 
    <ContentTemplate> 
     <asp:Timer ID="UpdateTimer" runat="server" OnTick="UpdateTimer_Tick" Interval="1000"></asp:Timer> 
     <asp:Label runat="server" ID="DateStampLabel"></asp:Label> 
    </ContentTemplate> 
</asp:UpdatePanel> 

но когда я бегу на местном. он возвращает каждую секунду, а после этого таймер останавливается. любая идея исправить код.

C# Код:

protected void UpdateTimer_Tick(object sender, EventArgs e) 
{ 
    DateStampLabel.Text = DateTime.Now.ToString(); 
} 
+0

Не знаете, в чем проблема, не является ли эта цель обратной почтой в секунду? Или ярлык не обновляется? –

+0

, если страница обратная передача каждую секунду, тогда я не могу заполнить детали на той же странице, что и при обновлении, и управление переходит к VS (у меня есть точка останова), а затем метки перестают работать. –

+0

Так вы говорите, что страница обновляет страницу во время обратной передачи таймера? Если да, это должно быть что-то не так с вашей обновленной областью –

ответ

0

Я получил образцы работ следующим кодом

.aspx:

<html> 
<head> 
</head> 
<body> 

<form id="frm" runat="server"> 


    <asp:ScriptManager ID="sc2" runat="server"></asp:ScriptManager> 
<asp:UpdatePanel ID="up1" runat="server" UpdateMode="Conditional"> 
    <Triggers> 
     <asp:AsyncPostBackTrigger ControlID="UpdateTimer" EventName="Tick" /> 
    </Triggers> 
    <ContentTemplate> 
     <asp:Timer ID="UpdateTimer" runat="server" OnTick="UpdateTimer_Tick" Interval="1000"></asp:Timer> 
     <asp:Label runat="server" ID="DateStampLabel"></asp:Label> 
    </ContentTemplate> 
</asp:UpdatePanel> 
</form> 
</body> 

</html> 

.aspx.cs

protected void UpdateTimer_Tick(object sender, EventArgs e) 
{ 
    DateStampLabel.Text = DateTime.Now.ToString(); 
} 

Если страница обновляется во время обратной передачи , это может быть связано с тем, что некоторая ошибка JavaScript на вашей странице, иногда исключение javascript в другом разделе приведет к потере обратной передачи .NET async. Если ваш ярлык не обновляется, вы можете проверить, есть ли какие-либо Response.Write, Response.Filter, Server.xxx в вашем Page_Load/Tick событии, так как ajax возвращает все, что вы написали в ответ, может появиться сообщение The message received from the server could not be parsed..

3

Я не уверен, что не так с вашим кодом, но попробуйте этот ниже код, если он может вам помочь.

<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
    <ContentTemplate> 
    <asp:Timer ID="Timer1" runat="server" Interval="1000"></asp:Timer> 
    <h3 class="bp-header__title">Time :   <font color="red" size="4px"><asp:Label ID="lbl_Time" runat="server" Text="Label" Font-Bold="false" Font-Names="Digital-7 Mono"></asp:Label></font></h3><br /> 
    </ContentTemplate> 
</asp:UpdatePanel> 
Смежные вопросы