Ajax Timer:仅执行5次

时间:2012-01-09 17:07:58

标签: c# asp.net .net ajax vb.net

我有一个ajax Timer控件。它将“+”添加到标签的文本值。该定时器应该只工作五次,间隔为“1000” - 即只有五个“+”应该可用。之后,lblPostbackType  应该用计数更新。我如何实现它?

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>

由于

1 个答案:

答案 0 :(得分: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事件方法清洁..