显示webservice调用的微调器(类似于UpdateProgress控件)

时间:2009-02-04 18:24:08

标签: javascript web-services asp.net-ajax updatepanel

现在,我有一个页面,不幸的是,有一个更新面板和从javascript调用webservice web / script方法的混合。

我有一个更新进度控件,显示更新面板活动的微调器。但是,当我进行webservice调用时,它不会显示。

您如何建议我解决此可用性问题,因为用户体验需要保持一致。我是否应该挂钩每个webservice调用以隐藏并显示updatecontrol的div?

1 个答案:

答案 0 :(得分:0)

好吧,for initial page rendering and for synchronous postbacks, the UpdateProgress control is not displayed.因此,请确保您的UpdatePanel异步更新。

此外,在链接页面的底部,它显示了控制微调器显示时必须具备的内容。

话虽如此,这是微软解决问题的黄金之路。 ASP.NET Ajax库中的某个地方可能存在阻止微调器显示的错误。

如果您确实耗尽了所有选项,请尝试自己动手。如果重写beginRequest和endRequest JavaScript方法,则可以控制微调器出现的时间。我可能会将这些函数中的所有先前代码保存到这样的变量中:

function addLoadEvent(func)
{
    var oldonload = window.onload;
    if(typeof window.onload != 'function')
    {
        window.onload = func;
    }
    else
    {
        window.onload = function()
        {
            oldonload();
            func();
        }
    }
}

现在,授予此代码用于向window.onload添加新函数,但相同的技术可用于beginRequest和endRequest。

希望这有帮助