2015-02-26 5 views
1

Я очень новичок в ASP.net C#. Мне удалось найти в Интернете информацию о том, как отображать текущую дату внутри метки C#. По какой-то причине Page_Load должен быть реализован как скрипт в веб-форме и не работает, если реализован в коде. Моя проблема заключается в том, что время изменяется только при обновлении страницы. Мне нужно время для изменения с системным временем по мере его изменения. Пожалуйста, помогите мне. Заранее спасибо.Как создать текущий текущий DateTime в метке

Вот мой код, чтобы получить текущую дату и время:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="StaffTravelInterface.aspx.cs" Inherits="StaffTravel.StaffTravelInterface" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<script runat="server"> 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     DateTime dt = DateTime.Now; 
     string Day = dt.Day.ToString(); 
     string Month = dt.ToString("MMM"); 

     string Hour = dt.Hour.ToString(); 
     string Minute = dt.ToString("mm"); 
     timeNow.Text = Day + " " + Month + " " + Hour + ":" + Minute; 
    } 
</script> 

<html xmlns="http://www.w3.org/1999/xhtml"> 
    <head runat="server"> 
     <style type="text/css"> 
      #time 
      { 
       margin-top:-67px; 
       float:right; 
      } 

      #main 
      { 
       position:static; 
       max-width:100%; 
      } 

      #head 
      { 
       width:100%; 
      } 
     </style> 

    <title></title> 
</head> 

<body> 
    <form id="form1" runat="server"> 
     <div id="main"> 
      <div id="head" style="background-image:url('../Pics/Header.png'); background-repeat:no-repeat; height:100px"> 
      </div> 

      <div id="time"> 
       <asp:Label ID="timeNow" runat="server" Text="" style="color:#fea171; font-family:Arial Black; font-weight:bold; font-size:32px"></asp:Label> 
       &nbsp; 
      </div> 

      <div id="bg2"> 
       <img src="Pics/slide.png" style="width:100%; height:100%" /> 
      </div> 
     </div> 
    </form> 
</body> 
</html> 
+0

Ofcourse будет изменяться во время загрузки страницы или обновления, как это происходит на сервере. Вы хотите показать время сервера или время клиента? – Amit

ответ

0

Добавить новый элемент управления Timer в форму, которая называется Таймер1, установить интервал до 1000 (мс), затем дважды щелкните на элемент управления Timer для отредактируйте код для Timer1_Tick.

<asp:Timer ID="Timer1" OnTick="Timer1_Tick" runat="server" Interval="1000" /> 

Он определит таймер. Затем добавьте триггер.

<Triggers> 
     <asp:AsyncPostBackTrigger ControlID="Timer1" /> 
    </Triggers> 

Затем добавьте следующий сценарий.

<script runat="server"> 
    protected void Timer1_Tick(object sender, EventArgs e) 
    { 
     timeNow.Text = DateTime.Now.ToLongTimeString(); 
    } 

</script> 
+0

Timer1.Start(); дает мне ошибку определения. В нем говорится, что «System.Web.UI.Timer» не содержит определения для запуска. Я даже не могу добавить «using System.Web.UI.Timer» в свой код, поскольку он не существует. Пожалуйста помоги. – ProblemChild

+0

Мне также пришлось добавить «ScriptManager». Проблема, с которой я сталкиваюсь сейчас, заключается в том, что вся страница обновляется каждые 1000 мс. Есть ли способ, которым я могу только обновить ярлык? – ProblemChild

+0

Можете ли вы показать свой сценарий? –

0

Если вы хотите изменить время изменяется только при обновлении страницы, чем используется IsPostBack событие

<script runat="server"> 
     protected void Page_Load(object sender, EventArgs e) 
     { 
     if(!IsPostBack) 
      { 
      DateTime dt = DateTime.Now; 
      string Day = dt.Day.ToString(); 
      string Month = dt.ToString("MMM"); 

      string Hour = dt.Hour.ToString(); 
      string Minute = dt.ToString("mm"); 
      timeNow.Text = Day + " " + Month + " " + Hour + ":" + Minute; 
      } 
    } 
     </script> 

Hope свою работу.

0

Нашел ответ.

Мой сценарий:

<script runat="server"> 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     DateTime dt = DateTime.Now; 
     string Day = dt.Day.ToString(); 
     string Month = dt.ToString("MMM"); 

     string Hour = dt.Hour.ToString(); 
     string Minute = dt.ToString("mm"); 
     string Seconds = dt.ToString("ss"); 
     timeNow.Text = Day + " " + Month + " " + Hour + ":" + Minute + ":" + Seconds; 
    } 
</script> 

Мой код:

<form id="form1" runat="server"> 
    <asp:ScriptManager ID="ScriptManager1" runat="server"> 
    </asp:ScriptManager> 

    <div id="main"> 
     <div id="head" style="background-image:url('../Pics/Header.png'); background-repeat:no-repeat; height:100px"> 

     </div> 

     <div> 
      <asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
       <Triggers> 
        <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" /> 
       </Triggers> 

       <ContentTemplate> 
        <asp:Label Id="timeNow" runat="server" style="color:#fea171; font-family:Arial Black; font-weight:bold; font-size:32px"></asp:Label> 
       </ContentTemplate> 
      </asp:UpdatePanel> 

      <asp:Timer ID="Timer1" runat="server" Interval="1000"> 
      </asp:Timer> 
     </div> 

     <div id="bg2"> 
      <img src="Pics/slide.png" style="width:100%; height:100%" /> 
     </div> 
    </div> 
</form> 
+0

Хорошо. Теперь он работает отлично. Правильно? –

+0

Да, спасибо. – ProblemChild

Смежные вопросы