2010-02-28 5 views
0

Je travaille sur Asp.Net VS08 C#. Cliquer sur le bouton veut afficher le popup. popup contient un bouton, Cliquer sur le bouton exécuter un événement sur le serveur mais le popup ne se ferme pas, le popup ne ferme que cliquer sur le bouton annuler. Mon problème est. Je peux appeler une fenêtre contextuelle mais en cliquant sur le bouton Ne pas effectuer l'événement côté serveur.Problème de popup JQuery

Aspx code

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Popup3.aspx.cs" Inherits="Jquery1._8Version.Popup3" %> 

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 

<html xmlns="http://www.w3.org/1999/xhtml" > 
<head runat="server"> 
    <title></title> 
     <link type="text/css" href="css/ui-lightness/jquery-ui-1.8rc2.custom.css" rel="stylesheet" /> 
    <script type="text/javascript" src="js/jquery-1.4.2.min.js"></script> 
    <script type="text/javascript" src="js/jquery-ui-1.8rc2.custom.min.js"></script> 

    <script type="text/javascript"> 
     function openModalDiv(divname) { 

      $("#Popup").dialog({ 
       bgiframe: true, 
       autoOpen: false, 
       height: 300, 
       modal: true, 
       buttons: { 
        Cancel: function() { 
         $(this).dialog("close"); 
        } 
       }, 
       close: function() { 
        allFields.val("").removeClass("ui-state-error"); 
       } 
      }); 
      $("#Popup").dialog("open"); 
     }  
    </script> 


</head> 
<body> 
    <form id="form1" runat="server"> 
    <asp:ScriptManager ID="ScriptManager1" runat="server"> 
    </asp:ScriptManager> 
    <asp:UpdatePanel ID="UpdatePanel1" runat="server"> 
    <ContentTemplate> 

    <div id="Popup" style="display: none;" title="Basic dialog"> 
     <asp:TextBox ID="TextBox1" runat="server"></asp:TextBox> 
     <asp:Button ID="Button2" runat="server" Text="Button" onclick="Button2_Click" /> 
    </div> 

    </ContentTemplate> 
    </asp:UpdatePanel> 

    <input id="Button3" type="button" value="Open 1" onclick="javascript:openModalDiv('Popup');" />  
    <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> 


    </form> 
</body> 
</html> 

C# Code:

protected void Button2_Click(object sender, EventArgs e) 
     { 
      Label1.Text = DateTime.Now.ToString(); 
     } 

Répondre

1

Je pense que c'est ce que vous êtes après:

<script type="text/javascript"> 
    $(function() { 
     $("#Popup").dialog({ 
      bgiframe: true, 
      autoOpen: false, 
      height: 300, 
      modal: true, 
      buttons: { 
       Cancel: function() { 
        $(this).dialog("close"); 
       } 
      }, 
     close: function() { 
       allFields.val("").removeClass("ui-state-error"); 
     } 
     }).parent().appendTo($("form:first")); 
     $("#Button3").click() { 
     $("#Popup").dialog("open"); 
     }); 
    }); 
</script> 

Et il suffit de retirer le onclick de le bouton, devrait être jus t ceci:

<input id="Button3" type="button" value="Open 1" /> 

La partie clé est la suivante: .parent().appendTo($("form:first")). Par défaut, le modal est ajouté au corps, qui est en dehors du formulaire. Le résultat est que les données de bouton ne sont jamais envoyées avec l'envoi, et le serveur ne sait pas que le bouton a été cliqué, ou pour faire quoi que ce soit. Cela indique au modal de sauter directement à la fin du formulaire. Essayez-le, devrait résoudre votre problème.

+0

Merci. Vraiment c'est du travail, Comment réparer le zindex de poup, je veux montrer popup sous le bouton.Comment régler la position? Merci d'avance – user280048