Msgbox en ASP.NET

Signaler
Messages postés
310
Date d'inscription
jeudi 4 septembre 2003
Statut
Membre
Dernière intervention
9 juin 2005
-
Messages postés
9
Date d'inscription
dimanche 24 septembre 2006
Statut
Membre
Dernière intervention
15 juin 2010
-
Bonjour

voila dans mes fichier aspx.vb je voudrais faire afficher une msgbox mais a chaque fois ca me crée un erreur

Vous ne pouvez pas afficher une boîte de dialogue modale ou un formulaire lorsque l'application ne s'exécute pas en mode UserInteractive. Spécifiez le style ServiceNotification ou DefaultDesktopOnly pour afficher une notification à partir d'une application de service. 


Merci de votre aide

Dionysos

www.hackeinfo.net

15 réponses

Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
25
c'est tout à fait normal. une application web ne marche pas du tout de la meme facon qu'une application windows meme si la syntaxe desormais se ressemble.

Ton erreur vient du fait qu'asp.net lui envoie du code HTML au client, et le code VB.net s'execute sur le serveur et non pas chez le client, donc quand tu fais msgbox au pire tu peux ouvrir une fenetre sur le serveur mais pas chez le client.

POur interagir avec le client, il faut que tu te serves de javascript. il faut donc utiliser la commande alert de javascript pour faire ce que tu veux

@+

Cyril
Messages postés
310
Date d'inscription
jeudi 4 septembre 2003
Statut
Membre
Dernière intervention
9 juin 2005

d'accord mais comment mettre du code javascript au milieu de code vb car je vais une fonction de verfi dans mon code vb et donc la je ne vois pas comment faire merci

Dionysos

www.hackeinfo.net
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
25
c'est plus compliqué que ce que ca, tu ne peux pas emettre des messages via javascript qd tu veux par le code VB il faut que tu travailles en JS.
travaillais en JS via Vb et relativement compliqué donc je te deconseil cette technique si tu ne comprend pas tout à asp.net (ce qui à l'air d'etre le cas)
donc pour faire ce que tu veux il faut ecrire du code javascript dans la page aspx via <script langage=javascript"> etc...

bon courage

Cyril
Messages postés
310
Date d'inscription
jeudi 4 septembre 2003
Statut
Membre
Dernière intervention
9 juin 2005

ok pour ta soulution mais voila la chose c'est que mes control son fait dans ma page aspx.vb

......

        objDa = New OleDbDataAdapter(requete, base)
        'Ajout des donnée de la base de donnée dans le dataset
        objDa.Fill(objDS, "bando")
        'Compte le nombres d'enregistrement
        Dim p As String
        p = Request.Form("Text2")
        If p = "ok" Then
            If Ajout() Then
                Response.Write("Mise à jour effectué")

            End If
        End If

.....


Et que ma fonction java est dans ma page .aspx

<script language=javascript>
Function message(){
alert("eeee");
}
</script>


Comment appler la fonction javascript de ma page aspx.vb?

Sinon plus simple je pense, serais d'ouvrire une page webform avec le messae que je souhaite mais comme ouvrire une page sous asp.net

webform1.open() ne marche pas

Merci de ton aide
Dionysos

www.hackeinfo.net
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
25
normal que ca marche pas, il faut perdre tes habitudes de developpeur VB , en asp.net tu n'es pas connecté avec le client,

JE te recopie un passage du bouquin manuel de référence microsoft asp.net Douglas J Reilly (editions microsoft)
Pourkoi ne peut on pas afficher un message comme dans VB ? aprce que qd vous programmmez cela, vous n'etes pas en train de programmer du coté client. Asp.net est une techno serveur. avec asp.net, vous avez accés au meilleur de la programmation coté serveur, mais si asp.net doit vous servir a afficher des messages, vous n'avez pas de chance. il existe toutefois un moyen d'afficher des zones de messages et de créer interationc proches de l'uilisateur: les scripts coté clients.
intro chapitre 7 : equilibrer les fonctionnalités serveur et client

donc il faut que tu fasses ta vérification complete niveau client via javascript

pour cela il faut modifier tes textbox et lui dire que qd l'evenement textchanged se declenche d'aller exectuer une fonction JS de validation ....

bon courage

Cyril

PS : Dsl pour les fautes et j'ai abregé le texte dans certains endroits
Messages postés
310
Date d'inscription
jeudi 4 septembre 2003
Statut
Membre
Dernière intervention
9 juin 2005

Merci beaucoup de ton aide

je vais voir pour changer ca alors merci
Dionysos

www.hackeinfo.net
Messages postés
12
Date d'inscription
mercredi 9 avril 2003
Statut
Membre
Dernière intervention
24 septembre 2007

Juste pour info si tu te rends sur le site espagnol de chez microsoft, tu peux trouver tous le code te permettant de faire un msgbox (composant que tu n'auras plus qu'à intégrer dans ta page au même titre qu'un bouton").

A+
Messages postés
12
Date d'inscription
mercredi 9 avril 2003
Statut
Membre
Dernière intervention
24 septembre 2007

Juste pour info si tu te rends sur le site espagnol de chez microsoft, tu peux trouver tous le code te permettant de faire un msgbox (composant que tu n'auras plus qu'à intégrer dans ta page au même titre qu'un bouton").

A+
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
25
On pourrait avoir la page ou le code ?

car ca m'interesserais de voir comment ils font ca :)

Merci

Cyril
Messages postés
12
Date d'inscription
mercredi 9 avril 2003
Statut
Membre
Dernière intervention
24 septembre 2007

Voici l'URL tout est super bien détaillé mais en espagnol.
Il y qd même certain truc que je n'ai pas compris,
mais je te garanti que ça marche.
Juste une petite précision,
ne t'en sers pas pour faire une vérif comme en VB car le code de la msgbox est exécuté que si le reste fonctionne, mais tu t'en rendras compte très rapidement.
A+

http://www.microsoft.com/spanish/msdn/comunidad/mtj.net/voices/art120.asp
8-)
Messages postés
1
Date d'inscription
mercredi 11 février 2004
Statut
Membre
Dernière intervention
27 mai 2004

Tu peux tout simplement faire comme ça sinon :

dans ta page .aspx.vb

Response.Write("<script>alert('Vous avez commis des erreurs lors de la saisie, veuillez vérifier et renouveler l'opération!')</script>")

Ca marche très bien.
a+
Messages postés
310
Date d'inscription
jeudi 4 septembre 2003
Statut
Membre
Dernière intervention
9 juin 2005

Merci j'aivais trouve depuis un petit bout mais je n'avais pas penser a mettre la solution merci a toi

Dionysos

www.hackeinfo.net
Messages postés
6814
Date d'inscription
dimanche 15 décembre 2002
Statut
Modérateur
Dernière intervention
13 octobre 2010
25
la solution de Baba34 est juste une astuce mais je deconseille d'utiliser ca, car le response.write ecrit ca directement dans le html tu auras donc une page qui auras la structure suivante :

<script>alert('Vous avez commis des erreurs lors de la saisie, veuillez vérifier et renouveler l'opération!')</script>
<html>

.
.
.

je trouve pas ca tres elegant comme méthode, et je suis 100% pour le XHTML donc t'as méthode me fait plus penser à une astuce pour du dvpt rapide, en débogage qu'autre chose :)
mais celle ci reste malheureusement utilisé dans beaucoup de site ...

@+

Cyril
Messages postés
35
Date d'inscription
lundi 15 juin 2009
Statut
Membre
Dernière intervention
28 juillet 2009

Google est ton ami lol
Voici le code
Public Sub UserMsgBox(ByVal sMsg As String)

        Dim sb As New StringBuilder()
        Dim oFormObject As System.Web.UI.Control

        sMsg = sMsg.Replace("'", "\'")
        sMsg = sMsg.Replace(Chr(34), "" & Chr(34))
        sMsg = sMsg.Replace(vbCrLf, "\n")
        sMsg = "<script language=javascript>alert(""" & sMsg & """)</script>"

        sb = New StringBuilder()
        sb.Append(sMsg)

        For Each oFormObject In Me.Controls
            If TypeOf oFormObject Is HtmlForm Then
                Exit For
            End If
        Next

' Add the javascript after the form object so that the
' message doesn't appear on a blank screen.
        oFormObject.Controls.AddAt(oFormObject.Controls.Count, New LiteralControl(sb.ToString()))

end sub

a+
Messages postés
9
Date d'inscription
dimanche 24 septembre 2006
Statut
Membre
Dernière intervention
15 juin 2010
1
ça égale quoi?
vb.net ===> msgbox()
asp.net ====>????