2013-11-13 6 views
1

Кажется, я точно не могу найти то, что мне нужно, поэтому я спрошу.Сообщение «Последнее обновление» после обновления панели

У меня есть страница, которая будет автоматически обновляться каждые 5-10 минут или около того, используя событие ASP: Updatepanel и timer_tick. Я просто ищу сообщение, которое имеет что-то вроде:

Last refresh was at: 
    <script>document.write(document.lastModified);</script> 

Или что-то в этом роде. Любые предложения?

+0

вам нужно C Do ода для этого? –

ответ

0

Попробуйте использовать элемент управления ASP.NET сервера (т.е. Label), который обновляется, когда сервер делает загрузку страницы, как это:

Markup:

<asp:UpdatePanel> 
    ... 
    <asp:Label id="LabelLastUpdated" runat="server" /> 
</asp:UpdatePanel> 

Code-за:

Sub Page_Load(ByVal Sender As System.Object, ByVal e As System.EventArgs) 
    ' Do update of data here and set last updated label to current time 
    LabelLastUpdated.Text = "Last refresh was at: " & DateTime.Now.ToString("F") 
End Sub 

Примечание: "F" - это полный график даты/времени (долгое время). Прочтите Standard Date and Time Format Strings для получения дополнительной информации.


UPDATE:

Чтобы использовать это сценарий главной страницы, где любое обновление страницы контента вызывает метку обновить, то попробуйте следующее: разметка

Master страницы:

<html> 
    <head> 

    </head> 
    <body> 
     ... Existing content ... 
     <asp:Label id="LabelLastUpdated" runat="server" /> 
    </body> 
</html> 

Код по умолчанию:

Sub Page_Load(ByVal Sender As System.Object, ByVal e As System.EventArgs) 
    ' Do update of data here and set last updated label to current time 
    LabelLastUpdated.Text = "Last refresh was at: " & DateTime.Now.ToString("F") 
End Sub 

Для сценария мастер-страницы, где вы хотите содержание страницы сказать главную страницу для обновления, то попробуйте следующее: разметку

Master страницы:

<html> 
    <head> 

    </head> 
    <body> 
     ... Existing content ... 
     <asp:Label id="LabelLastUpdated" runat="server" /> 
    </body> 
</html> 

мастер-страницы с выделенным кодом:

Sub UpdateLastUpdatedLabel() 
    ' A content page is telling the last updated label to be set 
    ' to the current time 
    LabelLastUpdated.Text = "Last refresh was at: " & DateTime.Now.ToString("F") 
End Sub 

В содержание страницы код с фоновым:

В Page_Load или любом другом случае, если вы хотите использовать в качестве триггера для обновления метки мастер-страницы, сделайте следующее:

' Get a reference to the master page 
Dim masterPage = DirectCast(Page.Master, YourMasterPageClassName) 

' Now you can call the master page's UpdateLastUpdatedLabel method 
' which will update the label's text to the current date/time 
masterPage.UpdateLastUpdatedLabel() 
+0

Я думаю, что это не то, что он хочет! –

+0

Довольно много того, что я ищу.Я могу найти способ заставить его работать на моей текущей странице, но если бы я захотел включить, скажите главную страницу, как бы я это сделал? – bender54

+0

@ bender54 - поместите метку в разметку главной страницы и установите «Page_Load» на главной странице обновление управления меткой. Это обновит ярлык, если какая-либо из страниц содержимого приведет к сообщению. У меня есть отдельный пример использования метки на главной странице, а также метод, который страница контента вызывает для фактического обновления метки. См. Обновленный ответ. –

0

Пожалуйста, попробуйте следующий код, который будет обновляться на регулярной интервале

В ASPX странице:

<asp:ScriptManager runat="server" id="ScriptManager1"> 
</asp:ScriptManager> 
<asp:UpdatePanel runat="server" id="UpdatePanel1"> 
    <ContentTemplate> 
    <asp:Timer runat="server" id="Timer1" Interval="10000" OnTick="Timer1_Tick"></asp:Timer> 
    <asp:Label runat="server" Text="Page not refreshed yet." id="LabelLastUpdated"> 
    </asp:Label> 
    </ContentTemplate> 
</asp:UpdatePanel> 

А в коде позади файла оных следующий код:

protected void Timer1_Tick(object sender, EventArgs e) 
    { 
     LabelLastUpdated.Text = "Last Modified at: " +DateTime.Now.ToLongTimeString(); 
    } 
Смежные вопросы