【问题标题】:Close the Ajax Modal popup window on Esc keypress在 Esc 按键上关闭 Ajax Modal 弹出窗口
【发布时间】:2011-06-20 10:39:32
【问题描述】:

我使用 Ajax 显示了一个面板弹出窗口,我要做的是当用户按下 Esc 键时我想关闭窗口。

这可能吗?如果有人知道这个或以前做过这个,请帮助我。

谢谢

【问题讨论】:

    标签: c# ajax modalpopupextender


    【解决方案1】:

    这是您可以通过按下 eascape 按钮轻松关闭窗口的链接:

    http://www.codeproject.com/KB/scripting/Javascript_for_modalpopup.aspx

    希望对您有所帮助。

    【讨论】:

    • 谢谢 Suresh,但在这里我必须在我的 body 标签中添加 onkeydown="body_onkeydown()"。但我的正文标签在母版页中。那么如何在body标签中添加这个事件。
    【解决方案2】:

    在页面中添加脚本以使用 ESC 键关闭模式弹出窗口

       <script type="text/javascript">
    
        function pageLoad(sender, args){
            if(!args.get_isPartialLoad()){
                //  add our handler to the document's
                //  keydown event
                $addHandler(document, "keydown", onKeyDown);
            }
        }
    
        function onKeyDown(e){
            if(e && e.keyCode == Sys.UI.Key.esc){
                // if the key pressed is the escape key, dismiss the dialog
                $find('mdlPopupExtender').hide();
            }
        } 
    
        </script>
    

    【讨论】:

      【解决方案3】:

      假设我们有两个 ModalPopupExtender 控件, 首先将每个模态控件的 BehaviorID 设置为可以从 java 脚本访问它, 我将第一个控件命名为 P2 和第二个控件 P3。 通过head标签写入以下代码:

      <script type="text/javascript">
          document.onkeyup =Esc;
          function Esc()
          {
          var KeyID =event.keyCode;
           if(KeyID==27)
           {
           if($find("p2"))
           {
             $find("p2").hide();
           }
           if($find("p3"))
              $find("p3").hide();
           }
          }
      </script>
      

      我们使用 $find(p2) 来确保页面中存在模式弹出窗口。

      【讨论】:

        猜你喜欢
        • 2014-08-30
        • 1970-01-01
        • 2020-11-14
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2023-04-09
        • 1970-01-01
        • 2015-10-23
        相关资源
        最近更新 更多