6
votes

ASP.NET VB Call JavaScript fonction du code derrière

J'ai une fonction responsable du remplissage d'un rapport SSRS. L'utilisateur appuie sur un bouton et je sors et vérifie s'il y a des données. Si aucune donnée, je fournis un message de données Aucun donnée. S'il y a des données, j'appelle le rapport SSRS que j'aimerais ouvrir dans une nouvelle fenêtre. Je pensais que l'utilisation d'une fonction JavaScript serait la meilleure façon d'accomplir cela. Comment cela est-ce fait ou que recommanderiez-vous? Merci d'avance!

    <script type="text/javascript">
        function openWindow(url) {
            document.forms[0].target = "_blank";
        }
    </script>


0 commentaires

4 Réponses :


5
votes

Veuillez envisager d'utiliser clientscriptManager.registerclieCriencreblock . C'est une méthode statique et doit être disponible sur votre page.

Exemple d'utilisation est suivant: xxx

Bien sûr, vous pouvez mettre n'importe quelle URL que vous avez préparée dans votre code derrière ...

espère que cela aide.


0 commentaires

0
votes

Si vous essayez d'exécuter JavaScript sur une page en fonction de certains résultats de la logique côté serveur, une solution que vous pouvez y parvenir est d'utiliser des commandes littérales ASP (ou d'autres types de commandes ASP)

Exemple: > xxx

puis afficher ou masquer ce littéral dans votre code serveur en fonction de votre autre logique.


0 commentaires

11
votes

Essayez ceci:

 System.Web.UI.ScriptManager.RegisterClientScriptBlock(Page, GetType(Page), "Script", "openWindow(url);", True)


0 commentaires

3
votes

Quelque chose à garder à l'esprit ici: pendant que votre code VB est en cours d'exécution, la page de votre navigateur n'existe pas.

N'oubliez pas que le Web fonctionne via le protocole HTTP, et le protocole HTTP revient à Demandes et réponses . Toujours une demande d'abord, suivie d'une réponse. Souvent, la réponse est HTML, et c'est là que votre code VB est entré. Le seul but de tout le code et de la balise ASPX est de sorte que votre serveur Web puisse renvoyer HTML sur le navigateur. Il n'y a pas de connexion active entre le navigateur et votre serveur. Pendant que votre code VB est en cours d'exécution, la page Web de votre navigateur n'existe pas vraiment (votre code est occupé à la créer). Alors que votre JavaScript est en cours d'exécution et que les ressources VB utilisées pour la créer sur le serveur ont été recyclé depuis longtemps.


0 commentaires