我正在使用ASP.NET 4.0。我在主页面上有一个ajax计时器控件,它继续运行,在我的内容页面上我有3个文本框控件和一个提交按钮。我想在任何人点击提交按钮时延迟页面处理20秒,但是计时器不应该停止它应该继续运行。怎么做?
答案 0 :(得分:0)
您必须在finally块
中设置Timer1.Enabled = false;
protected void Timer1_Tick(object sender, EventArgs e)
{
try
{
// your code ............
}
catch
{
}
finally
{
divLoading.Visible = false;
Timer1.Enabled = false;
}
}
答案 1 :(得分:0)
我有点不清楚你需要什么 - 但我认为你要求的是你想在客户端点击一个按钮,在客户端有20秒的等待时间您的计时器仍在运行,然后提交页面进行处理。如果这是您想要的,则必须完全由客户端驱动 - 计时器不会在服务器代码中“运行”。这都是基于你在谈论AJAX计时器的假设......
如果这是您要求的,那么下面的代码可以帮助您:
function onButtonClick(e) {
var evt = Sys.UI.DomEvent.isInstanceOfType(e) ? e : new Sys.UI.DomEvent(e);
if(evt.target["_doClick"] === true) {
// just let the event happen
// (still w/ button disabled to prevent double click)
evt.target["disabled"] = "disabled";
evt.target["_doClick"] = false;
alert('the real click');
} else {
evt.target["disabled"] = "disabled";
evt.target["_doClick"] = true;
evt.preventDefault();
evt.stopPropagation();
var t = evt.target;
setTimeout(function () { t["disabled"] = ""; t.click(); }, 20000);
}
}