2009-07-30 9 views
0

J'utilise un ModalPopUp dans une application Asp.net et j'aimerais qu'il se ferme automatiquement lorsque l'utilisateur clique sur "esc".Modal PopUp - Trousse à outils de contrôle Ajax Ajax

Je l'ai utilisé le script suivant:

<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> 

Et le Modal Extender est déclarée comme ça:

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

Lorsque j'appuie sur la touche "esc" Je reçois cette erreur: "Erreur d'exécution Microsoft JScript: 'null' est null ou un objet"

Est-ce que quelqu'un a eu le même problème? Comment a-t-il été résolu? Merci d'avance.

Josimari Martarelli

+0

Jetez un oeil à ce blog: [lien texte] (http://mattberseth.com/blog/2007/08/ how_to_dismiss_a_modalpopup_us.html) – zakster82

Répondre

0

Cela peut fonctionner pour IE et Moozilla


document.onkeyup = KeyCheck;
fonction KeyCheck (e)
{
    // vérification ternaire pour couvrir FF ou IE
    var KeyID = (window.event)? event.keyCode: e.keyCode;
    si (KeyID = '27') {
    // Fermer Popup
    var = mdl trouver $ ('modalExtender') cache().
 }}

+0

Salut, merci, mais je reçois toujours le même message d'erreur lors de l'affichage de la page dans IE et cela ne fonctionne pas dans Firefox. Fonction PageLoad() { document.onkeyup = KeyCheck; } fonction KeyCheck (e) { // Vérification ternaire pour couvrir FF ou IE var KeyID = (window.event)? event.keyCode: e.keyCode; if (ID_clé = '27') { // Fermer le pop-up var mdl = $ find ('modalExtender'). Hide(); } } –

0

Ne devrait pas trouver votre $ à la recherche du PreviewPanel de contrôle au lieu de l'extension? Je crois que $ find renvoie un null car il n'y a pas de contrôle HTML avec le nom modalExtender.

En outre, vous devez probablement obtenir le ClientId pour PreviewPanel au lieu du nom de contrôle ASP.NET (si ma supposition que PreviewPanel est un contrôle ASP.NET est correcte).

0

Il travaille maintenant, je manque le BehaviorID du ModalPopup ...

Questions connexes