2010-11-03 34 views
0

我有一个页面,感谢jQuery会在一定条件下自动点击“Run Report”按钮。所以,当用户通过菜单转到页面时,他们会等待x秒钟并返回结果。这很好...ASP.Net - 可怜的Mans Asynch“Please Wait ...”动画

但是,我想添加一个动画,因为一些用户不知道任何事情正在进行,我也想只显示一个微调。该应用程序尚未“Ajax化”,可能永远不会。所以我想到了一个穷人的做法。

我有一个div有文字和图像。该div有一个简单的类display: none;同样的jQuery,点击按钮我也有它使用.toggleClass方法现在显示div。

这很有效,报告运行并最终返回数据,并且自那时起页面被刷新,div被隐藏起来,所有的东西在世界上都是正确的。

我的问题是,图像显示,但没有动画。我试图把它放在点击希望会发生并开始它的事情然后点击甚至开始等待会发生。

我能做些什么来强制GIF动画?

回答

1

您是否使用jQuery ajax方法来请求报告?如果是这样,那么标准的ajax方法就有一个函数。

$.ajax({ 
    url: "/webservices/taskHelper.asmx/ArchiveTask", 
    data: '{taskId: 5}', 
    beforeSend: function() { 
     $("#spinner").show(); 
    }, 
    error: deft.ajaxError, 
    success: function (data) { 
     $("#spinner").hide(); 
    } 
}); 

当单击链接并继续运行直到从服务器收到响应时,将执行“beforeSend”函数。我使用beforeSend函数来显示包含动画gif的隐藏div。工作得很好。 jQuery ajax docs

+0

不幸的是,我不能使用你的例子。基本上我调用ObjectDataSource的DataBind方法来“获取”或“重新获取”数据。在它的_Selecting事件中,我正在填充运行查询所需的值。我试图把它称为WebMethod,理论上可以工作,但WebMethod需要是静态的,那就是它分崩离析的地方。我试图只在上面显示时启用微调,然后通过javascirpt单击按钮。我得到相同的结果,图像显示但不旋转。 – Grandizer 2010-11-22 20:07:52

1

提交表单将停止所有页面操作,包括GIF动画。

解决方法是将表单发布到隐藏的iframe。当然,您需要iframe来“唤醒”主页,并在结果出现后在其中显示其内容。

+0

是现货。将你的动画图形放在一个隐藏的div中,点击按钮后,让javascript“显示”以前隐藏的div – ewitkows 2010-11-03 21:05:18

相关问题