现在,我有一个页面,不幸的是,其中混合了更新面板和从 javascript 调用 webservice web/script 方法。
我有一个更新进度控件,它显示了更新面板活动的微调器。但是当我进行网络服务调用时,它不会显示。
你会建议我如何解决这个可用性问题,因为用户体验需要保持一致。我应该挂钩每个 web 服务调用以隐藏和显示 updatecontrol 的 div 吗?
现在,我有一个页面,不幸的是,其中混合了更新面板和从 javascript 调用 webservice web/script 方法。
我有一个更新进度控件,它显示了更新面板活动的微调器。但是当我进行网络服务调用时,它不会显示。
你会建议我如何解决这个可用性问题,因为用户体验需要保持一致。我应该挂钩每个 web 服务调用以隐藏和显示 updatecontrol 的 div 吗?
好吧,对于初始页面呈现和同步回发,不显示 UpdateProgress 控件。因此,请确保您的 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。
希望这可以帮助