2009-07-30 26 views
0

私はAsp.netアプリケーションでModalPopUpを使用しています。ユーザーが「esc」をクリックすると自動的に閉じるようにしたいと考えています。モーダルExtenderは、そのように宣言されているModal PopUp - Asp.Net Ajaxコントロールツールキット

<script language="JavaScript" type="text/javascript"> 

    function pageLoad() { 
     $addHandler(document, 'keydown', onKeypress); 
    } 

    function onKeypress(args) { 

     if (args.keyCode == Sys.UI.Key.esc) { 

      var mdl = $find('modalExtender').hide(); 

     } 
    } 

</script> 

そして:

私は次のスクリプトを使用しました

 <cc1:ModalPopupExtender 
      ID="modalExtender" 
      runat="server" 
      TargetControlID="btnPreview" 
      PopupControlID="PreviewPanel" 
      BackgroundCssClass="modalBackground" 
      DropShadow="true" 
      CancelControlID="btnFechar" /> 

私はこのエラーを取得しています「ESC」キーを押すと: "Microsoft JScript実行時エラー: 'null'がnullまたはオブジェクトではありません。

誰かに同じ問題がありましたか?どのように解決されたのですか? ありがとうございます。

Josimari Martarelli

+0

は、このブログの記事を見てください:[リンクテキスト](http://mattberseth.com/blog/2007/08/ how_to_dismiss_a_modalpopup_us.html) – zakster82

答えて

0

これはIEとMoozilla両方


document.onkeyup = KEYCHECKのために働くことができます。
機能KEYCHECK(E)
{
    // FFまたはIE
    VAR KeyIDを=(window.event)を覆う三元チェック? event.keyCode:e.keyCode;
    {
    //閉じるポップアップ
    VAR MDL = $( 'modalExtender')を見つける(鍵ID = '27')であれば非表示()。
 }
}
+0

こんにちは、ありがとうございますが、IEでページを表示するときに同じエラーメッセージが表示され、Firefoxでは機能しません。 function pageLoad(){ document.onkeyup = KeyCheck; } 機能KeyCheck(e){ // FFまたはIEをカバーする3進チェック var KeyID =(window.event)? event.keyCode:e.keyCode; if(KeyID = '27'){ //ポップアップを閉じる var mdl = $ find( 'modalExtender')。hide(); } } –

0

あなたの$はなく、エクステンダーの制御PreviewPanelを探して見つけることができませんでしょうか? modalExtenderという名前のHTMLコントロールがないので、あなたの$ findがnullを返すと思います。

また、ASP.NETコントロール名の代わりにPreviewPanelのClientIdを取得する必要があります(PreviewPanelがASP.NETコントロールであると思われる場合)。

0

それは今働いている、私はModalPopUpのBehaviorIDがありませんでした...

関連する問題