Asp.net 在UpdateProgress期间隐藏UpdatePanel
我正在寻找最简单的方法,在等待提交响应返回时隐藏UpdatePanel。 Stuff—使用Ajax控制工具包和UpdatePaniMationExtender既过分,又会导致一些问题,即:Asp.net 在UpdateProgress期间隐藏UpdatePanel,asp.net,javascript,updatepanel,updateprogress,Asp.net,Javascript,Updatepanel,Updateprogress,我正在寻找最简单的方法,在等待提交响应返回时隐藏UpdatePanel。 Stuff—使用Ajax控制工具包和UpdatePaniMationExtender既过分,又会导致一些问题,即: 因为页面中有两个隐藏的面板,所以它会变得一团糟,并隐藏错误的面板。我不知道为什么会这样 我找不到一种方法来指定只有一个按钮应该触发动画。我确实在UpdatePanel中指定了一个,但是它似乎被忽略了,面板中的所有控件都会触发动画 一个简单的javascript解决方案将是理想的。这里的问题是ASP.NET
- 因为页面中有两个隐藏的面板,所以它会变得一团糟,并隐藏错误的面板。我不知道为什么会这样李>
- 我找不到一种方法来指定只有一个按钮应该触发动画。我确实在UpdatePanel中指定了一个,但是它似乎被忽略了,面板中的所有控件都会触发动画
提前感谢。您可以在html页面中使用代码标记,并使用控件的ClientId属性吐出asp.net生成的id:
$('#<%= elementName.ClientID %>').hide();
$('#').hide();
编辑:这个例子使用jQuery,顺便说一句,我建议使用jQuery。这会让你的事情变得更容易。因此,要解决“奇怪的ID”问题,您可以执行如下jQuery:
$('#<%= someASPControl.ClientID %>').hide();
$('#').hide();
并表明:
$('#<%= someASPControl.ClientID %>').show();
$('#').show();
这是使用jQuery按id获取元素,然后您可以使用它做任何您想做的事情。诀窍是“.ClientID”,它将获取.net发送的id。处理PageRequestManager
beginRequest
和endRequest
事件,以控制回发期间UpdatePanel的可见性:
var prm = Sys.WebForms.PageRequestManager.getInstance();
prm.add_beginRequest(
function (sender, args) {
$get("<%=someUpdatePanel.ClientID %>").style.display = "none";
}
);
prm.add_endRequest(
function (sender, args) {
$get("<%=someUpdatePanel.ClientID %>").style.display = "";
}
);
var prm=Sys.WebForms.PageRequestManager.getInstance();
prm.add_beginRequest(
函数(发送方,参数){
$get(“”).style.display=“无”;
}
);
prm.add_endRequest(
函数(发送方,参数){
$get(“”.style.display=“”;
}
);
还将DisplayAfter=“0”添加到关联的UpdateProgress控件,以防止UpdatePanel隐藏和UpdateProgress显示之间的延迟这是一个很好的答案,但是,当页面上有多个更新面板时,它不起作用,因为它们都会触发此操作。@Shiroy:在beginRequest函数中,您可以使用
args.get_updatePanelSoupDate()获取发起请求的更新面板的ID代码>