2011-05-31 43 views
1

我正在使用ModalPopupExtender。点击按钮(即ModalPopupExtender的TargetControlID),调用JavaScript来检查某些条件。我的要求是,我只想在某些条件为真时显示弹出窗口,否则将其隐藏。ModalPopupExtender - 如何仅在满足特定条件时显示?

这是代码。隐藏功能在这里不起作用。即使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

我有类似的情况,不能使用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客户端点击事件,做你的病情检查,如果条件得到满足然后执行隐藏按钮点击事件(触发modalPE)

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" /> 
相关问题