Problème client serveur

sebicool Messages postés 32 Date d'inscription jeudi 7 décembre 2000 Statut Membre Dernière intervention 12 décembre 2008 - 16 sept. 2008 à 11:28
ggtry Messages postés 417 Date d'inscription vendredi 13 juin 2008 Statut Membre Dernière intervention 21 juillet 2010 - 16 sept. 2008 à 16:17
Bonjour tout le monde,

j'ai un petit problème :
en fait, je voudrais faire appel coté serveur d'une fonction défini coté client... Je débute dans l'asp et je voudrais savoir si c'est possible, et si oui comment on fait.
Mon problème en fait est que je fais un test de présence d'un fichier coté serveur (avec FileSystemObject), et que en cas d'inexistence du fichier, j'affiche une popup d'erreur (un msgbox classique). Mais le msgbox ne peut pas être executé coté serveur, donc je voudrais faire appel à une fonction que je défini coté client pour afficher cette popup...

J'ai été clair?
N'hésitez pas à me dire si c'est pas clair...

Merci d'avance pour vos réponses.
Cordialement,

Sebicool

3 réponses

ggtry Messages postés 417 Date d'inscription vendredi 13 juin 2008 Statut Membre Dernière intervention 21 juillet 2010 1
16 sept. 2008 à 14:08
Bonjour,

Il vaut sans doute mieux faire une alert javascript et ajouter conditionnellement sur le body, côté serveur, un appel à cette fonction lors du onload.
Pour cela, tu peux rajouter sur ton body un id et runat="server", par exemple :

Lors du test côté serveur de l'existence de ton fichier, s'il n'existe pas, tu peux alors ajouter l'appel sur ton body (en vb) :

If  ... le test que tu dois faire ... then
            zozo.Attributes.Add("onload", "fichier()")
End If

(ou fichier() est ta fonction javascript, présente dans le head)
Tu dois aussi penser à supprimer l'attribut, par exemple sur le Page_Load, pour éviter que la fonction javascript ait lieu ensuite à chaque postback :

Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
        zozo.Attributes.Remove("onload")
End Sub 

GGtry
0
sebicool Messages postés 32 Date d'inscription jeudi 7 décembre 2000 Statut Membre Dernière intervention 12 décembre 2008
16 sept. 2008 à 14:30
Merci GGtry pour ta réponse...

Malheureusement, ca ne fonctionne pas...
Je me retrouve avec une erreur "L'appel d'une fonction Sub n'admet pas de parenthèses." au niveau du zozo.Attributes.Add("onload", "fichier()")

Une idée d'où ca peut venir?
0
ggtry Messages postés 417 Date d'inscription vendredi 13 juin 2008 Statut Membre Dernière intervention 21 juillet 2010 1
16 sept. 2008 à 16:17
"L'appel d'une fonction Sub etc." est un message d'erreur VBScript, non ?
En fait, je pensais plutôt à quelque chose comme cela (où il y a un textbox dans la page où l'on entre un nom de fichier pour tester son existence, lors de l'événement textchanged ou sur un autre événement, par exemple le onclick d'un button) :

Private Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
        zozo.Attributes.Remove("onload")
    End Sub
   
    Protected Sub TextBox1_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs)
        Dim fso As Object
        fso = CreateObject("Scripting.FileSystemObject")
        If fso.FileExists(Server.MapPath(TextBox1.Text)) = False Then
            zozo.Attributes.Add("onload", "fichier('" & TextBox1.Text & "')")
        End If
    End Sub

Avec une fonction javascript (pour la compatibilité) du genre :

<script type="text/javascript">
    function fichier(fic){
    alert("Le fichier '" + fic + "' n'existe pas.")
    }
  </script>

GGtry
0
Rejoignez-nous