Ajax ToolKit --- ModelPopupExtender报错:Sys.InvalidOperationException: Handler was not added through the Sys.UI.DomE
问题原因:
如果将ModalPopupExtender的OK/Cancel 按钮,放在了弹出框的UpdatePanel内,就会报这个错
解决办法:
既然ModalPopupExtender不让人在UpdatePanel内放Ok/Cancel的控制按钮,那就干脆不放了,用Show()和Hide()来控制~
即,
view plaincopy to clipboardprint?
- <cc1:ModalPopupExtender ID="ModalPopupExtender1" runat="server" PopupControlID="pTool" CancelControlID="btnHide" BackgroundCssClass="modalBackground" TargetControlID="HiddenField3">
<cc1:ModalPopupExtender ID="ModalPopupExtender1" runat="server" PopupControlID="pTool" CancelControlID="btnHide" BackgroundCssClass="modalBackground" TargetControlID="HiddenField3">
最近用ModelPopupExtender时,总是提示我有 Sys.InvalidOperationException 未通过 Sys.UI.DomEvent.addHandler 的错误,后来发现是我设置了CancellControlID,而没有设置相应的事件,我是通过在服务器端Show和Hide来控制的,这样脚本在寻找CancellControlID的时候就找不到了,就为null,在脚本中就会抛出以上错误。所以,如果我们要在服务器端控制ModelPopupExtender,不要设置ControlId就可以了!
ModalPopupExtender的使用
2010-01-08 10:33:17| 分类:asp.net| 标签:|字号大中小 订阅
常用属性:
TargetControlID:用于触发弹出面板的控件。
OkControlID:弹出面板中的确认按钮,用于确认新的样式。
OnOkScript:当单击确认按钮后,关闭样式面板后,执行脚本。
CancelControlID:样式面板中的取消按钮,用于取消应用样式。
PopupDragHandleControlID:样式面板中用于触发面板的控件。
DropShadow:样式面板是否有阴影。值为True,则有阴影;值为False,则没有阴影。
BackgroundCssClass:样式面板中应用的css样式。
1、实现半透明阴影遮罩
定义一个CSS类,并指派到BackgroundCssClass属性上
<style type="text/css">
.bg
{
position: absolute;
z-index: 100;
top: 0px;
left: 0px;
background-color: #000;
filter: alpha(opacity=60);
-moz-opacity: 0.6;
opacity: 0.6;
}
</style>
2、JavaScript 控制显示
$find('Panel1').hide()
$find('Panel1').show()
前提是,PopupControlID和BehaviorID都要是Panel1
3、后台控制显示
要弹出的panel
<asp:Panel ID="plInfo" runat="server" BorderStyle="None" Style="display: none">
<asp:UpdatePanel ID="upnYueJian" runat="server" RenderMode="Inline">
<ContentTemplate>
<!--注意这个Button,ModalPopupExtender必须有一个宿主控件-->
<asp:Button ID="btnShowPopup" runat="server" Style="display: none" />
<cc1:ModalPopupExtender ID="popCtr" CancelControlID="qxYJ" TargetControlID="btnShowPopup"
DropShadow="false" BackgroundCssClass="modal" PopupControlID="plInfo" runat="server">
</cc1:ModalPopupExtender>
<div style="width: 220px; padding: 10px 0px 10px 10px; border: 1px #79144a solid;
line-height: 20px; font-size: 13px; letter-spacing: 1px; margin: 20px 20px; background-color: #fff;
text-align: left; background-image: url(img/hua_bg.gif); background-repeat: no-repeat;">
<asp:Literal ID="ltrDTCode" runat="server"></asp:Literal>
<p style="font-weight: bold; padding-top: 10px;">
<span>
<asp:LinkButton Text="我坚持约见" CssClass="LeeA" ID="lbtnJCYJ" CommandName="jcyj" runat="server"
OnClick="lbtnJCYJClicklee" CommandArgument='<%# Eval("id")%>'>
</asp:LinkButton>
</span><span style="padding-left: 40px;">
<asp:LinkButton Text="取消约见" runat="server" CssClass="LeeA" ID="qxYJ"></asp:LinkButton>
</span>
</p>
</div>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Panel>
后台:
popCtr.Show();//显示
popCtr.Hide();//隐藏