延迟页面处理几秒钟

时间:2011-07-22 10:42:45

标签: asp.net

我正在使用ASP.NET 4.0。我在主页面上有一个ajax计时器控件,它继续运行,在我的内容页面上我有3个文本框控件和一个提交按钮。我想在任何人点击提交按钮时延迟页面处理20秒,但是计时器不应该停止它应该继续运行。怎么做?

2 个答案:

答案 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);
            }
        }