有没有办法为某些异步回发禁用UpdateProgress?

时间:2011-06-09 20:48:42

标签: jquery asp.net ajax visual-studio

我有一个UpdateProgress控件,它显示为更新面板的所有异步事件的叠加(使用CSS)。现在,对于某些EXPAND / COLLAPSE行命令事件,我只是不想显示updateprogress。

有办法吗?

2 个答案:

答案 0 :(得分:5)

<script type="text/javascript">
    var prm = Sys.WebForms.PageRequestManager.getInstance();
    prm.add_initializeRequest(InitializeRequest);

    function InitializeRequest(sender, args) {
        var updateProgress = $get('UpdateProgress1');
        var postBackElement = args.get_postBackElement();
        if (postBackElement.id == '<%= Button1.ClientID %>') {
            updateProgress.control._associatedUpdatePanelId = 'dummyId';
        }
        else{
            updateProgress.control._associatedUpdatePanelId = null;
        }
    }

</script>

答案 1 :(得分:0)

我发现这适用于我,其中Response.Redirect阻止重新加载原始页面&amp;因此UpdateProgress没有关闭..

在违规控制上添加

OnClientClick="disableProgress()"

然后将此javascript放在页面上

<script type="text/javascript">

function disableProgress() {

var updateProgress = $get('<%=UpdateProgress1.ClientID%>');
var originalID = updateProgress.control._associatedUpdatePanelId;
updateProgress.control._associatedUpdatePanelId = 'dummyId';

setTimeout(function () { updateProgress.control._associatedUpdatePanelId = originalID; }, 1000);

}
</script>

这会暂时禁用UpdateProgress控件,然后在1秒后以异步方式重新激活客户端。