2009-06-11 8 views
0

J'utilise un contrôle personnalisé dans ASP.NET qui gère le téléchargement de fichiers pour moi. Le contrôle a un gestionnaire dans le code-behind en utilisant quelque chose comme ceci:registerClientScriptBlocage dans un gestionnaire personnalisé?

Protected Sub UploadFileComplete(ByVal sender As Object, ByVal e As UploadControl.FileUploadCompleteEventArgs) Handles UploadControl.FileUploadComplete 

Dans ce sous, je poster sur le serveur et faire un travail sur la base de données, mais quand je reviens, je veux JavaScript enregistrer à ce moment-là.

Cependant, lorsque j'utilise Page.ClientScript.RegisterClientScriptBlock ou ScriptManager.RegisterClientScriptBlock, les scripts ne se chargent pas sur la page. J'ai besoin de ce JavaScript pour exécuter et mettre à jour la page, et pour fermer la fenêtre de dialogue de téléchargement. Je suppose que c'est parce que la page est déjà chargée.

Quelqu'un a-t-il de bonnes idées sur la façon de procéder?

Répondre

0

D'accord se donc sur c'est comme ça ...

Du côté serveur (code-behind), dans le sous UploadFileComplete(), vous pouvez accéder à cette variable EventArgs en utilisant la méthode e.CallbackData = [WHATEVER].

Et puis dans votre javascript, vous utilisez cette fonction intégrée client:

function UploadComplete(args){ 
    alert(args.callbackData); 
} 

Et cette variable args.callbackData a tout ce que vous mettez via côté serveur. Joli slick je pense! Mais difficile à comprendre car ils ne l'ont pas très bien documenté. De cette façon, vous n'avez pas besoin d'ajouter votre propre méthode RegisterClientScriptBlock, car vous pouvez transmettre tout ce que vous voulez au JavaScript en utilisant leur méthode intégrée.

Questions connexes