2012-01-05 20 views
0

我很生氣,我把一個更新面板與定時器和標籤:更新面板的更新頁面完全,但我需要更新剛好本身

<asp:UpdatePanel runat="server" UpdateMode="Conditional" ChildrenAsTriggers="false" ID="upTimer"> 
<ContentTemplate> 

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

</ContentTemplate> 

<asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
     <ContentTemplate> 

      <asp:Label runat="server" ID="Lab1"></asp:Label> 
      <br/> 
      <asp:Label runat="server" ID="lbTime"></asp:Label> 
     </ContentTemplate> 
    </asp:UpdatePanel> 

和代碼隱藏我寫設置DateTime.Now標註在「pageLoad的」它不應該每秒更新一次,但它是updateing:((

代碼背後:

public DateTime endTime; 
    public TimeSpan timespann; 
    protected void Page_Load(object sender, EventArgs e) 
    { 
     endTime = DateTime.Now.AddHours(1); 
     lbTime.Text = DateTime.Now.ToString(); 
    } 

    protected void Timer1_Tick(object sender, EventArgs e) 
    { 
     //timespann = endTime.Subtract(DateTime.Now); 
     //DateTime now = DateTime.Now; 
     //Response.Write(endTime.Subtract(now).TotalSeconds.ToString()); 
     //Lab1.Text = timespann.ToString(); 
     //lbTime.Text = DateTime.Now.ToString(); 
    } 

回答

0

Tick事件觸發時,它會導致PostBack事件導致頁面重新加載;因此標籤每秒更新一次。

要停止更新,您需要將Page_Load事件中的代碼打包爲!IsPostBack(例如,

if (!IsPostBack) 
{ 
    endTime = DateTime.Now.AddHours(1); 
    lbTime.Text = DateTime.Now.ToString(); 
}