ModalPopupExtender - 如何仅在满足某些条件时显示?

时间:2011-05-31 09:00:28

标签: sharepoint-2010 modalpopupextender

我正在使用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>

2 个答案:

答案 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"  />