我在UpdateProgress-Control中有一个与ModalPopupExtender结合的图像。要在网站加载时打开Extender,Iam使用以下Javascript:
<script type="text/javascript">
Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(showPopup);
Sys.WebForms.PageRequestManager.getInstance().add_endRequest(hidePopup);
function showPopup(sender, args) {
var ModalControl = '<%= ModalPopupExtender1.ClientID %>';
$find(ModalControl).show();
}
function hidePopup(sender, args) {
var ModalControl = '<%= ModalPopupExtender1.ClientID %>';
$find(ModalControl).hide();
}
</script>
这工作正常,但Extender现在每个请求都会打开。它只应在强制刷新特定UpdatePanel时打开(UpdatePanelMain)。我怎么能在Javascript中这样做:if(postbackelement == UpdatePanelMain)还是什么?
答案 0 :(得分:1)
要获取UpdatePanels ID并找到您想要运行的那个,您可以使用args.get_postBackElement().id
函数:
function showPopup(sender, args) {
// get the Post ID and compare it with the one you let run
if(args.get_postBackElement().id == "<%=UpdatePanelMain.ClientID%>")
{
var ModalControl = '<%= ModalPopupExtender1.ClientID %>';
$find(ModalControl).show();
}
}
类似的问题: How to get Id update panel that initial a request in javascript
答案 1 :(得分:0)
所以这个解决方法就是我正在寻找的。感谢Aristos的提示。
var UpdPanelsIds = args.get_updatePanelsToUpdate();
if (UpdPanelsIds[0] != "") {
if (UpdPanelsIds[0] != "ctl00$cpMain$UpdatePanelMenue" || args.get_postBackElement().id == '<%= refreshButton.ClientID %>') {
var ModalControl = '<%= ModalPopupExtender1.ClientID %>';
$find(ModalControl).show();
}
}
如何使这段代码变得“更好”?