我有一个UpdateProgress控件,它显示为更新面板的所有异步事件的叠加(使用CSS)。现在,对于某些EXPAND / COLLAPSE行命令事件,我只是不想显示updateprogress。
有办法吗?
答案 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秒后以异步方式重新激活客户端。