我需要从另一个方法btn_submit_Click(object sender, EventArgs e)
拨打protected void Timer1_Tick(object sender, EventArgs e)
,方法通常只需按一下按钮即可。
现在Timer1_Tick
比较一个时间,如果当前时间超过,我需要自动调用btn_submit_Click(object sender, EventArgs e)
。
protected void Timer1_Tick(object sender, EventArgs e)
{
DateTime et = DateTime.Parse(Session["endtime"].ToString());
if (DateTime.Now.TimeOfDay >= et.TimeOfDay)
{
// btn_submit_Click();
Response.Redirect("Welcome.aspx");
}
else
{
Label1.Text = DateTime.Now.ToLongTimeString();
}
}
请建议我这样做。
答案 0 :(得分:4)
我个人会采取略微不同的方法。你实际上并没有想要点击一个按钮 - 你只是对按钮点击产生的副作用感兴趣。因此,提取仅具有相关参数的第三种方法(可能没有任何参数),并从btn_submit_Click
和Timer1_Tick
调用该方法。这样,您就不必为点击按钮找到sender
和EventArgs
,但这并没有发生。例如:
protected void btn_submit_Click(object sender, EventArgs e)
{
// Maybe validation?
Submit();
}
protected void Timer1_Tick(object sender, EventArgs e)
{
DateTime et = DateTime.Parse(Session["endtime"].ToString());
if (DateTime.Now.TimeOfDay >= et.TimeOfDay)
{
Submit();
Response.Redirect("Welcome.aspx");
}
else
{
Label1.Text = DateTime.Now.ToLongTimeString();
}
}
private void Submit()
{
// Common code to execute on either the timer tick or button click
}
答案 1 :(得分:2)
Jon Skeet提到了正确的方法。将btn_submit_click
中的代码重构为可由Button和Timer调用的中心方法。但你仍然可以做submit_click(sender, e)
protected void Timer1_Tick(object sender, EventArgs e)
{
....
btn_submit_Click(sender, e);
...
}