计时器不会在指定时间内调用

时间:2013-06-14 11:06:43

标签: c# asp.net timer

我在web应用程序中使用计时器控件。我使用带有下拉列表的div,其中包含10,20,30的分钟值。默认div根据get data方法div是不可见的。现在使用此下拉菜单,我将选择分钟并添加当前时间并设置会话变量中的总时间。并获得这个计算的时间,并给出计时器的间隔现在我想根据指定的时间段使用tick事件可见我的div。我的div不显示指定的时间,请帮我解决这个问题。

private void BindControl()
{
    //ddlTime.Items.Clear();
    List<ListItem> items = new List<ListItem>();
    items.Add(new ListItem("10", "10"));
    items.Add(new ListItem("20", "20"));
    items.Add(new ListItem("30", "30"));
    ddlTime.Items.AddRange(items.ToArray());

}
private void GetData()
{
    ClsCandidateManager ObjCandidateManager = new ClsCandidateManager();
    if ((ObjCandidateManager.CountInterviewScheduled() > 0))
    {
        divReminder.Visible = true;
        tmrReminder.Enabled = false;
        //if (ddlTime.SelectedIndex > 0)
        //{
        //    ClsSessionManager.SetInterval = (DateTime.Now + (ddlTime.SelectedValue * 1000);
        //}
    }

    DataTable dt = ObjCandidateManager.GetScheduledInterviews();
    if (dt != null && dt.Rows.Count > 0)
    {
        grdInterviewInfo.DataSource = dt;
    }
    else
    {
        grdInterviewInfo.DataSource = ClsSingleton.BlankTable;
    }
    grdInterviewInfo.DataBind();
}


protected void tmrInterview_Tick(object sender, EventArgs e)
{
    divReminder.Visible = true;
}
protected void btnOk_Click(object sender, EventArgs e)
{
    if (ddlTime.SelectedValue != null)
    {
        //DateTime dt = DateTime.Now;
        ClsSessionManager.SetInterval = DateTime.Now.AddMinutes(Convert.ToInt32(ddlTime.SelectedValue));
        tmrReminder.Interval = (ClsSessionManager.SetInterval).Millisecond;
        divReminder.Visible = false;
        tmrReminder.Enabled = true;
    }

}

1 个答案:

答案 0 :(得分:-1)

我可能会误解你的尝试是什么,但你实际上并没有在你的代码中的任何地方启动你的计时器,所以你的计时器实际上从未运行,你需要使用tmrReminder.Start()而你还需要设置new ElapsedEventHandler

tmrReminder.Elapsed += new ElapsedEventHandler('method to be run when time elapses');