IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ASP.NET Discussion :

Problème : cast spécifié n'est pas valide.


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de paradeofphp
    Inscrit en
    Décembre 2005
    Messages
    313
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 313
    Par défaut Problème : cast spécifié n'est pas valide.
    Bonjour tout le monde,
    j'ai développé une fonction qui me retourne le chemin des images.
    Je fais appel à cette fonction dans la partie HTML.
    Voici le prototype de la fonction :


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Protected Function getPhotoPath(ByVal IdPersonne As String, ByVal Stockage_Photo As Byte(), ByVal PhotoPath As String) As String
    la fonction marche bien puisque je l'utilise dans d'autres formulaires.

    l'appel dans la partie html est le suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <%# getPhotoPath(DataBinder.Eval(Container.DataItem, "ID_PERSONNE"),DataBinder.Eval(Container.DataItem, "STOCKAGE_PHOTO"),DataBinder.Eval(Container.DataItem, "PHOTO")) %>
    Lorsque j'execute, j'ai le message d'erreur suivant :
    Le cast spécifié n'est pas valide.

    j'ai trouvé que le 2ème argument qui est de type Byte() qui est l'origine du problème. J'ai mis alors un cast comme suit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CType(DataBinder.Eval(Container.DataItem, "STOCKAGE_PHOTO"), Byte())
    mais j'ai toujours la même erreur.

    Quelqu'un a une idée ? Merci

  2. #2
    Membre Expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Par défaut
    <%# ... %>: Remplace par <% Response.Write( ... ) %>

  3. #3
    Membre éclairé Avatar de paradeofphp
    Inscrit en
    Décembre 2005
    Messages
    313
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 313
    Par défaut
    Merci pour ta réponse.

    j'ai ecris ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <% Response.Write(getPhotoPath(DataBinder.Eval(Container.DataItem, "ID_PERSONNE"),CType(DataBinder.Eval(Container.DataItem, "STOCKAGE_PHOTO"), Byte()),DataBinder.Eval(Container.DataItem, "PHOTO"))) %>
    j'ai eu le message d'erreur suivant :

    Message d'erreur du compilateur: BC30451: Le nom 'Container' n'est pas déclaré.

    j'ai rajouté le # après le %, alors j'ai eu le message suivant :

    Message d'erreur du compilateur: BC30518: La résolution de surcharge a échoué, car aucun 'ToString' accessible ne peut être appelé avec ces arguments :



    une idée ?

  4. #4
    Membre Expert
    Avatar de FremyCompany
    Profil pro
    Étudiant
    Inscrit en
    Février 2006
    Messages
    2 532
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Février 2006
    Messages : 2 532
    Par défaut
    C'est quoi Container ? A mon avis c'est de la que vient l'erreur...

    Et la fonction Eval renvoie quel type d'objet ?

  5. #5
    Membre éclairé Avatar de paradeofphp
    Inscrit en
    Décembre 2005
    Messages
    313
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 313
    Par défaut
    Bonjour,

    le Container.DataItem ne pose pas de problème puisque j'arrive à afficher les données issues de la base de données avec. et j'ai testé la fonction sans le DataBinder.Eval(Container.DataItem, "STOCKAGE_PHOTO") et sa retourne un résultat. donc le problème vient de là. sinon comment je peux vérifier le type que retourne DataBinder.Eval ??

  6. #6
    Membre confirmé
    Profil pro
    UN
    Inscrit en
    Février 2007
    Messages
    92
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : Allemagne

    Informations professionnelles :
    Activité : UN
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2007
    Messages : 92
    Par défaut try this
    Je crois que la solution sera de realiser une connexion a la base a partir du code behind, tester le contenu de la variable, puis, le passer au code html. cela serai du sort suivant:

    protected mavar as string
    mavar=getPhotoPath(tonId, toph)

    """"Là ou vous allez tester le contenu retourné par la fonction"""""""""

    Vous pouvez en suite passer le chemain de l'image au code html comme suit:

    <%#Container.DataItem.mavar%>

    j'éspere que cela pourait aider

    Alabama song

Discussions similaires

  1. Réponses: 1
    Dernier message: 12/04/2011, 10h22
  2. Message d'erreur: Le cast spécifié n'est pas valide.
    Par giscard85 dans le forum ASP.NET MVC
    Réponses: 1
    Dernier message: 30/03/2011, 11h10
  3. Le cast spécifié n'est pas valide
    Par abbd dans le forum Windows Forms
    Réponses: 3
    Dernier message: 31/05/2008, 20h30
  4. Erreur "Le cast spécifié n'est pas valide"
    Par GriffinK dans le forum VB.NET
    Réponses: 4
    Dernier message: 28/04/2008, 10h46
  5. Le cast spécifié n'est pas valide
    Par illegalsene dans le forum VB.NET
    Réponses: 3
    Dernier message: 11/03/2008, 14h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo