此问题已在此处得到解答 - How to specify javascript to run when ModalPopupExtender is shown - 但已接受的解决方案对我不起作用。
modalpopupextender声明如下:
<ajaxtoolkit:ModalPopupExtender ID="mpe" runat="server" TargetControlID="btn"
PopupControlID="pnlModal" PopupDragHandleControlID="pnlModalDragHandle" BackgroundCssClass="modalBackground"
CancelControlID="btnModal" DropShadow="true"/>
显示/隐藏工作正常。什么不起作用是将客户端脚本链接到模式弹出扩展器的显示事件。基于原始问题,我尝试了:
<script type="text/javascript">
function pageLoad() {
var popup = $find('mpe');
popup.add_shown(SetShowing);
}
function SetShowing() {
alert('showing');
}
</script>
什么都没发生。没有警报,没有错误。在原帖中进一步阅读,我甚至在脚本中添加了这一行: Sys.Application.add_load(页面加载);
附加行没有效果。任何想法为什么原来的答案不起作用?谢谢,我已经尝试了几个小时。
答案 0 :(得分:0)
我不熟悉&#34; modalpopupextender&#34;,
但为什么不使用一些jquery?
$(document).ready(function(){
if ($('#mpe').is(':visible')){
//code for when MPE is visible here
}
});
答案 1 :(得分:0)
我最终不得不以另一种方式攻击这个问题。没有任何建议能够成功检测到何时显示modalpopupextender。我改变了我的方法来处理显示元素上的用户操作 - 比如专注于文本框等。如果用户正在与它进行交互,我可以确信显示了modalpopupextender。
如果你来到这里,我会引导你到这里的原帖 - How to specify javascript to run when ModalPopupExtender is shown - 并希望你比我更成功。
感谢所有评论的人,我真诚地感谢您的光临。