2010-08-16 8 views
2

J'ai un bouton ASP.NET. Lorsque le bouton est cliqué, je voudrais afficher un pop-up modal après l'exécution du code côté serveur pour le bouton. Je ne souhaite pas utiliser l'extension contextuelle modale ASP.NET Ajax Control Toolkit. Avec ASP.NET Ajax, je peux me connecter à l'événement de demande de fin. Existe-t-il un moyen de le faire sans ASP.NET Ajax. juste jQuery? Je veux fondamentalement exécuter du javascript après que le code de clic côté serveur s'exécute, après la publication.Afficher le modal après publication sans ASP.NET Ajax

Répondre

3

Cela dépend de la méthode que vous avez l'intention d'utiliser pour démarrer la publication via jQuery. Si vous utilisez une publication asynchrone (comme jQuery.ajax), vous pouvez simplement fournir une méthode à appeler lorsque la publication est terminée. Voir http://api.jquery.com/jQuery.ajax/.

Si vous n'utilisez que la publication normale, vous pouvez utiliser Page.ClientScript.RegisterClientScriptBlock de votre méthode côté serveur pour enregistrer un script qui sera exécuté une fois la publication terminée.

5

Vous pouvez utiliser ScriptManager.RegisterStartupScript() pour cela, quelque chose comme ceci:

ScriptManager.RegisterStartupScript(MyUpdatePanel, GetType(), "post-load-script", 
    "$(function() { $('#dialog').dialog(); });", true); 

Ensuite, la demande de l'UpdatePanel revient, il serait en cours d'exécution ceci:

$(function() { 
    $('#dialog').dialog(); 
}); 

Vous pouvez de tout cours vous mettre voulu pour le script là, mais si vous avez simplement utilisé une étiquette ou quoi que ce soit dans le #dialog<div> qui a rempli dans le cadre de la mise à jour, cela le montrerait (si vous utilisez the jQuery UI dialog, il y en a d'autres). Le concept est très général, vous êtes juste en train d'enregistrer du code JavaScript à exécuter lorsque la requête asynchrone revient, quel modal et comment vous voulez le faire est très ouvert.

Questions connexes