现在的位置: 首页 > 综合 > 正文

Ajax ToolKit — ModelPopupExtender报错:Sys.InvalidOperationException: Handler was not added through the Sys.UI.DomE

2012年12月24日 ⁄ 综合 ⁄ 共 2709字 ⁄ 字号 评论关闭

Sys.InvalidOperationException: Handler was not added through the Sys.UI.DomEvent.addHandler method...

问题原因:

如果将ModalPopupExtender的OK/Cancel 按钮,放在了弹出框的UpdatePanel内,就会报这个错

解决办法:

既然ModalPopupExtender不让人在UpdatePanel内放Ok/Cancel的控制按钮,那就干脆不放了,用Show()和Hide()来控制~

即,

view plaincopy to clipboardprint?

  1. <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();//隐藏

抱歉!评论已关闭.