2012-01-09 3 views
1

저는 Ajax 타이머 컨트롤이 있습니다. 레이블의 텍스트 값에 "+"를 추가합니다. 이 타이머는 "1000"간격으로 5 회만 작동합니다. 즉, 사용할 수있는 "+"수는 5 개입니다. 그런 다음 lblPostbackType 을 개수로 업데이트해야합니다. 그것을 어떻게 성취합니까?Ajax 타이머 : 5 회만 실행

public partial class _Default : System.Web.UI.Page 
{ 
static int partialPostBackCount = 0; 
protected void Page_Load(object sender, EventArgs e) 
{ 
    if (IsPostBack) 
    { 
     if (ScriptManager.GetCurrent(this).IsInAsyncPostBack) 
     { 
      partialPostBackCount = partialPostBackCount + 1; 
      lblPostbackType.Text = "Partial Postback:: " + partialPostBackCount.ToString(); 
     } 
     else 
     { 
      lblPostbackType.Text = "Full Postback"; 
     } 
    } 

} 
protected void Timer1_Tick(object sender, EventArgs e) 
{ 
    Label1.Text = Label1.Text + "+"; 
} 
} 

그리고 디자이너 코드가

<form id="form1" runat="server"> 
<asp:ScriptManager ID="ScriptManager1" runat="server" /> 
<asp:Timer runat="server" ID="Timer1" Interval="1000" OnTick="Timer1_Tick" /> 

<asp:Label runat="server" ID="lblPostbackType" >SAMPLE</asp:Label> 

<asp:UpdatePanel runat="server" ID="TimePanel" UpdateMode="Conditional"> 
    <Triggers> 
     <asp:AsyncPostBackTrigger ControlID="Timer1" EventName="Tick" /> 
    </Triggers> 
    <ContentTemplate> 
     <asp:Label runat="server" ID="Label1" /> 
    </ContentTemplate> 
</asp:UpdatePanel> 

</form> 

감사

+0

레이블에 '+'를 추가하기 위해 정말로 서버에 다시 게시하고 싶습니까? 자바 스크립트 배우기! ;) –

+0

나는 Ajax를 배우는 중이다. 실제 시나리오에서 서버 – Lijo

+0

@ Lijo에서 가치를 얻을 필요가 있다고 가정하십시오. 답변을 선택하십시오. – dotNETbeginner

답변

2

protected void Timer1_Tick(object sender, EventArgs e) 
{ 


    if (partialPostBackCount > 5) 
     { 
      lblPostbackType.Text = "Partial Postback:: " + 
            partialPostBackCount.ToString(); 
      //Timer1.Enabled = false; //if you don't want it to continue 
     } 
     else 
     { 
      partialPostBackCount = partialPostBackCount + 1; 
      Label1.Text = Label1.Text + "+"; 
     } 

} 

* 정적 변수는 사용하지 않는 것이 좋습니다 시도 ..

Page_Load 이벤트 방식을 유지 깨끗 ..

관련 문제