【问题标题】:detect if modal is currently active检测模态是否当前处于活动状态
【发布时间】:2013-01-25 18:23:13
【问题描述】:

如何检测当前是否正在使用 javascript 显示 modalpopupextender?

Modalpopupextender 标记

  <!-- Add Files Modal Form -->
    <asp:HiddenField ID="AddFilesForModal" runat="server" />
    <ajaxToolkit:ModalPopupExtender runat="server" ID="AddFilesModal" BehaviorID="modalPopupExtenderAddFiles"
        TargetControlID="dummyButtonAddToPendingList" PopupDragHandleControlID="PanelAddFilesOuter" PopupControlID="PanelAddFilesOuter"
        OkControlID="dummyButtonAddToPendingList" BackgroundCssClass="modalBackground" DropShadow="false"
        Drag="true">
    </ajaxToolkit:ModalPopupExtender>
    <ajaxToolkit:RoundedCornersExtender ID="RoundedCornersExtender4" runat="server" TargetControlID="PanelAddFilesInner">
    </ajaxToolkit:RoundedCornersExtender>
    <asp:Panel ID="PanelAddFilesOuter" runat="server"   BackColor="Transparent" Style="display: none;">
        <asp:Panel ID="PanelAddFilesInner" runat="server" BackColor="White" Style=" width:800px; height:600px;  overflow:auto;">
         <ContentTemplate>
            <div id="AddFilesContainer" style="  padding-left:10px; padding-right:10px; padding-top:10px; padding-bottom:5px;">
                <br />
                Add Files
                <div  id="AddFiles_Div" style="height:80%;overflow:auto;">
                            <asp:TreeView ID="TreeViewAddItems" runat="server" Height="500px"  ShowCheckBoxes="Leaf"
                                Width="380px" ImageSet="XPFileExplorer" NodeIndent="15" PathSeparator="\" ShowExpandCollapse="true"
                                EnableClientScript="true" OnTreeNodeCheckChanged="OnTreeNodeCheckChanged" OnAdaptedTreeNodeCheckChanged="OnTreeNodeCheckChanged" ShowLines="True">
                                <HoverNodeStyle Font-Underline="True" ForeColor="#6666AA" />
                                <NodeStyle Font-Names="Tahoma" Font-Size="10pt" ForeColor="Black" HorizontalPadding="2px"
                                    NodeSpacing="0px" VerticalPadding="2px" />
                                <ParentNodeStyle Font-Bold="False" />
                                <SelectedNodeStyle BackColor="#B5B5B5" Font-Underline="False" HorizontalPadding="0px"
                                    VerticalPadding="0px" />
                            </asp:TreeView>
                            </div>
                <br />
                <div class="base" style="height:20px;">
                <asp:LinkButton ID="lnkAddToPendingList" runat="server" OnClick="BtnAddToPendingList_Click" BorderStyle="Solid" BackColor="#CCCCCC">Add selected items to list</asp:LinkButton>
                <asp:Button CssClass="Button" ID="dummyButtonAddToPendingList" runat="server" Style="display: none;" />
                <asp:Button CssClass="Button" ID="CancelAddFiles" runat="server" Text="Cancel" OnClientClick="$find('modalPopupExtenderAddFiles').hide(); return false;" />
                </div>
                </div>
                </ContentTemplate>
        </asp:Panel>
    </asp:Panel>
    <!-- End Add Files Modal Form -->

【问题讨论】:

    标签: c# javascript asp.net modalpopupextender


    【解决方案1】:

    我认为没有可以调用的属性。您可能需要挂钩显示和隐藏的事件。像这样的:

    var amIVisible = false;
    Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(function () {
        $find('modalPopupExtenderAddFiles').add_shown(function () {
            amIVisible = true;
        });
    
        $find('modalPopupExtenderAddFiles').add_hidden(function () {
            amIVisible = false;
        });
    });
    

    【讨论】:

      【解决方案2】:

      在客户端使用 BehaviourID 进行验证:

      <script type="text/javascript">
      
      function IsVisible()
      {
          var modalPopup = $find('ModalBehaviourID');
          return modalPopup ? true : false;
      }
      </script>
      

      第二个选项:

      <script type="text/javascript" >
      
      function IsVisible()
      {
          return $find('ModalBehaviourID').get_PopupVisible();
      }
      
      </script>
      

      来源:Link

      【讨论】:

      • 嗨,我试过了,但它不起作用 - 该函数总是返回 true
      • 我认为这取决于 AjaxToolKit 程序集的版本。尝试我在帖子中发布的另一个选项。
      • 它似乎不起作用,但我没有投入太多时间来公平,因为上面的解决方案运行良好。不过感谢您的帮助。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-02
      • 2012-01-27
      • 2020-01-11
      • 2019-12-10
      • 2022-11-11
      • 2021-08-16
      • 1970-01-01
      相关资源
      最近更新 更多