Asp.net 延迟页面处理几秒钟

Asp.net 延迟页面处理几秒钟,asp.net,Asp.net,我使用的是ASP.NET4.0。母版页上有一个ajax定时器控件,该控件将继续运行,而内容页上有3个文本框控件和一个提交按钮。我想延迟页面处理20秒,每当有人点击提交按钮,但定时器不应该停止它应该继续运行。如何执行此操作?您必须设置计时器1。Enabled=false;在最后一个街区 protected void Timer1_Tick(object sender, EventArgs e) { try { // your c

我使用的是ASP.NET4.0。母版页上有一个ajax定时器控件,该控件将继续运行,而内容页上有3个文本框控件和一个提交按钮。我想延迟页面处理20秒,每当有人点击提交按钮,但定时器不应该停止它应该继续运行。如何执行此操作?

您必须设置计时器1。Enabled=false;在最后一个街区

    protected void Timer1_Tick(object sender, EventArgs e)
    {
        try
        {
           // your code ............
        }
        catch
        {             
        }
        finally
        {
            divLoading.Visible = false;
            Timer1.Enabled = false;
        }
    }

我不太清楚您需要什么,但我想您要求的是在客户端单击一个按钮,在计时器仍在运行时在客户端等待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);
            }
        }  

你想完成什么?线程,睡觉?延迟页面处理是什么意思?服务器端或客户端。这是为了调试目的吗?所以你会延迟页面回发或实际的服务器端逻辑执行?Thanx用于回复,但线程。睡眠停止整个应用程序几秒钟,在这种情况下,计时器也停止,我希望计时器正在运行,我所有的代码都写在服务器端没有任何东西在客户端。谢谢你的回复,但我所有的代码都在服务器端,submit按钮实际上是一个服务器端的按钮控件,在该按钮的单击事件中,我希望页面处理等待或暂停几秒钟,但计时器应该保持运行。Hi Vicky-如果您正在运行ASP.NET Ajax计时器,实际发生的情况是控件正在发出从客户端重复调用操作所需的javascript。如果要延迟服务器端的处理,可以调用System.Threading.Thread.Sleep20000,但我不推荐这种方法。您最好更新onButtonClick以返回false,并将OnClientClick=return onButtonClickwindow.event放在演示文件或代码中。通过这种方式,你可以阻止客户端,而不是服务器…Vicky-在阅读你的其他回复时,我无法强调在ASP.NET中,浏览器中发生的任何事情都不是服务器端的。您的计时器未在服务器上运行。服务器在启动前不计算秒数。客户端在启动前数秒-服务器所做的只是发出客户端代码来创建计时器-如果要允许计时器继续运行,必须从客户端处理此问题并延迟回发,或者必须阻止服务器上的线程,hi Brian你说的每个字都对,我使用了你的代码,但它给了我一个例外:Sys.WebForms.PageRequestManagerServerErrorException:在服务器上处理请求时发生未知错误。从服务器返回的状态代码为:0源文件:行:1410