2010-10-14 3 views

Répondre

11

Tous correct, mais il y a une autre façon, si vous voulez fermer la fenêtre dans votre code:

Supposons que l'ID du bouton est « ContineButton » et le nom du gestionnaire d'événements clic « ContineButton_Click »

protected void ContineButton_Click(object sender, EventArgs e) 
{ 
    this.ClientScript.RegisterClientScriptBlock(this.GetType(), "Close", "window.close()", true); 
} 
13
<asp:Button ID="btnOK" runat="server" OnClientClick="window.close(); return false;" Text="Close" /> 
0

Cela nécessite un certain javascript. Modifiez votre balisage de bouton à ceci:

<asp:Button Id="btnOK" runat="server" AccessKey="<%$Resources: 
wss,multipages_okbutton_accesskey%>" Width="70px" Text="<%$Resources:wss, 
multipages_okbutton_text%>" OnClick="btnOK_Click" OnClientClick="javascript:window.close(); return false;" /> 
2

S'il y a une chance que votre code côté serveur peut échouer, et vous devez garder la fenêtre ouverte pour corriger les erreurs, l'astuce OnClientClick ne va pas aider. Je le fais avec un PlaceHolder et un petit script:

<asp:PlaceHolder id="close_script" runat="server"> 
    <script>window.close();</script> 
</asp:PlaceHolder> 

Ensuite, dans le gestionnaire de bouton, définissez la propriété Visible du PlaceHolder pour fermer la fenêtre (ou le laisser ouvert:

protected void btnOK_Click(Object sender, EventArgs e) { 
    bool success = processPage(); 
    close_script.Visible = success; 
} 
+0

Si la '' se rend, est-il pas relativement sûr de supposer qu'il rendrait la 'OnClientClick' attribut? Question honnête, mais je suppose que "vous pouvez sans risque supposer que si le bouton apparaît même que le javascript approprié serait attaché". –

+0

vraie déclaration, mais je ne vois pas comment cela s'applique à ma suggestion. – Ray

+0

Ah, il n'était pas clair dans la version originale de votre réponse que 'PlaceHolder' serait sur la page parente. Pour une raison quelconque, je pensais que vous proposiez un contrôle supplémentaire sur la popup qui gère sa propre fermeture, ce qui était juste idiot :) –

Questions connexes