Appelez javascript du code vb.net derrière

Comment puis-je appeler une fonction javascript à partir du code derrière?
La réponse la plus populaire est " ScriptManager.RegisterStartupScript " mais cela ne fonctionne pas dans ma situation.

J'ai une classe vb qui effectue une vérification de la base de données pour voir si un enregistrement existe. Si existe, appelez une fonction javascript pour afficher une alerte ("Record existe")

Donc, je fais quelque chose comme

 Dim strMessage as string = "javascript:RecordExists('Param');" 

Comment puis-je appeler cette fonction à partir de ma classe vb.net?

 If DataStore.Record.Exists(theRecord) Then Dim script As String = "alert('Record exists')" If Not Page.ClientScript.IsStartUpScriptRegistered(Me.GetType(), "alertscript") Then Page.ClientScript.RegisterStartUpScript(Me.GetType(), "alertscript", script, True) End If End If 

Vous le feriez comme ci-dessus, où vous devriez remplacerDataStore.Record.Exists (theRecord) avec la condition de vérifier l'enregistrement de la base de données

Vous devez penser à votre script d'une manière légèrement différente – rappelez-vous, JavaScript fonctionne sur le côté du client et VB.NET fonctionne sur le serveur. Vous ne pouvez donc pas appeler JavaScript depuis le côté serveur.

Cependant, vous pouvez générer JavaScript sur le côté du serveur, mais il faudra qu'il soit envoyé à la page avant de pouvoir l'exécuter.

Si vous étiez un postback de page complète, une manière brute de l'atteindre serait d'attribuer le script ou la fonction à un contrôle Literal , ce qui rend sa propriété Text sur la page HTML exactement comme écrite.

Ensuite, votre script s'exécutera au point où le Literal est rendu.

Une manière plus simple de le faire est d'ajouter votre script à la page via ScriptManager comme vous l'avez noté. Plutôt qu'un StartupScript , vous pourriez essayer d'utiliser .RegisterClientScriptBlock() place? Vous ne mentionnez pas ce que cela concerne votre situation qui ne fonctionne pas?

La manière la plus complète de le faire serait d'utiliser AJAX, soit le cadre intégré de .NET, soit jQuery. L'AJAX de jQuery (et AJAX en général) est un sujet distinct, dont vous pouvez lire ici .