我正在寻找最简单的方法来隐藏UpdatePanel,同时等待提交响应返回。 使用Ajax Control Toolkit和UpdatePanelAnimationExtender的东西like described here都是过度杀伤并导致一些问题,即:
一个简单的JavaScript解决方案将是理想的。这里的问题是ASP.NET喜欢在运行时为控件生成奇怪的ID。有什么解决方案吗?
提前致谢。
答案 0 :(得分:0)
您可以在html页面中使用代码标记,并使用控件的ClientId属性吐出asp.net生成的id:
$('#<%= elementName.ClientID %>').hide();
编辑:此示例使用jQuery btw
答案 1 :(得分:0)
我建议使用jQuery。它会让你的事情变得更轻松。因此,为了解决“奇怪的ID”问题,你可以像这样做一些jQuery:
$('#<%= someASPControl.ClientID %>').hide();
并显示:
$('#<%= someASPControl.ClientID %>').show();
这是使用jQuery按id抓取一个元素然后你可以用它做你想做的事。诀窍是“.ClientID”,它将获取.net发出的id。
答案 2 :(得分:0)
处理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 = "";
}
);
同时将DisplayAfter =“0”添加到相关的UpdateProgress控件,以防止UpdatePanel隐藏和UpdateProgress之间的延迟显示