我正在使用ModalPopupExtender。按下按钮(它是ModalPopupExtender的TargetControlID),调用javascript来检查某些条件。我的要求是,我只想在某些条件成立时显示弹出窗口,否则隐藏它。
这是代码。隐藏功能在这里不起作用。即使调用hide(),也会出现弹出窗口。
function ShowAlert()
{
if (selBtn == "" || selBtn == null)
{
alert("Please select scrip/scheme first");
var modalPopup = $find('<%=ModalPopupExtender2.ClientID %>');
if (modalPopup != null)
{
modalPopup.hide();
}
return false;
}
}
-----------------------------------------------
<table width="100%" border="0" cellpadding="0" cellspacing="0">
<tr>
<td valign="top" align="center">
<asp:Button ID="btnSet" runat="server" Text="Set Alerts" OnClientClick="ShowAlert();" />
<cc1:ModalPopupExtender ID="ModalPopupExtender2" runat="server" BehaviorID="ModalBehaviour2" TargetControlID="btnSet" PopupControlID="pnlPopupU" DropShadow="false" X="100" Y="200" BackgroundCssClass="Inactive"></cc1:ModalPopupExtender>
</td>
</tr>
</table>
答案 0 :(得分:0)
我有类似的情况,无法使用Javascript。 相反,我在服务器端进行了条件检查和modalpopup显示。解决方案不像客户端javascript一样干净,但至少我让它工作并继续前进。
If Condition == true then modalPopUp.Show()
在你的面板pnlPopU中,放置一个按钮(modalpopupextender的CancelControlID)并向其添加onclientclick事件以隐藏弹出窗口。
var modalPopup = $find('<%=ModalPopupExtender2.ClientID %>');
modalPopup.hide();
编辑: 另一项工作: 1)添加一个隐藏按钮(显示:无)并将其分配给modalPE的TargetControlID 2)在btnSet客户端点击事件上,进行条件检查,如果满足条件,则执行隐藏按钮点击事件(触发模态PE)
答案 1 :(得分:0)
在后面的代码中你可以:
if (true)
{
var script = @"Sys.Application.add_load(function() { $find('behavoirIDModal').show(); });";
ScriptManager.RegisterStartupScript(this, GetType(), "ShowPopup", script, true);
}
在aspx中你做了:
<asp:Panel runat="server" ID="pnlSalvo">
<asp:Button ID="btnClose" runat="server" Text="Fechar" />
</asp:Panel>
<ajaxToolkit:ModalPopupExtender ID="ModalResultado" BehaviorID="acao" runat="server" PopupControlID="pnlSalvo"
TargetControlID="btnShow"
CancelControlID="btnClose">
</ajaxToolkit:ModalPopupExtender>
<asp:Button ID="btnShow" runat="server" Text="Modal" Visible="true" />