【问题标题】:Fire updateprogress regardless of processing time无论处理时间如何,都会触发 updateprogress
【发布时间】:2012-12-20 13:29:28
【问题描述】:

是否可以触发我的UpdateProgress,这样即使处理完成得更快,我也可以让我的加载动画显示一段时间?

我有一个下拉菜单,可以更改表中所选索引更改的结果,并且处理速度太快,因此用户很难判断是否发生了任何事情。

我希望我的加载 gif 显示半秒钟,以显示发生了什么事。这是否可以通过更新面板控件实现,还是我必须编写一些 JavaScript 才能做到这一点?

除此之外,我真的不想在按钮点击时做一些事情,例如:

System.Threading.Thread.Sleep(1000);

【问题讨论】:

    标签: asp.net ajax updatepanel updateprogress


    【解决方案1】:

    根据documentation

    默认情况下,UpdateProgress 控件在显示其内容之前会等待 .5 秒 (500 milliseconds)。如果异步回发非常快,这有助于防止控件闪烁。您可以通过设置DisplayAfter 属性来指定延迟。

    因此,您可以将此值设置为其他值,以使您的UpdateProgress 显示得更快。但我认为这不能解决你的问题,所以试试这个:

    如果您需要更好地控制何时显示UpdateProgress 控件,您可以为PageRequestManager 类的beginRequestendRequest 事件提供客户端脚本。在beginRequest 事件处理程序中,您可以显示代表UpdateProgress 控件的DOM 元素。在endRequest 事件处理程序中,您可以隐藏它。

    您可以存储回调的开始日期和时间,并在请求结束时检查此值。

    【讨论】:

    • 我尝试了 displayafter 并将其设置为零,但加载的 gif 只闪现,所以如果你眨眼就会错过它。如果有一个 displayfor 属性会很有用!看起来像 javascript 路由,除非其他人能想出另一种方式
    猜你喜欢
    • 2013-03-02
    • 1970-01-01
    • 1970-01-01
    • 2018-05-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多