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 de casting


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Inscrit en
    Février 2006
    Messages
    256
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 256
    Par défaut Problème de casting
    Bonjour,

    J'ai crée une classe CTreeNode qui dérive de TreeNode pour y ajouter des propriétés qui me sont utiles et qui ne sont pas présentes dans la classe de base.
    Je créé des objets de type CTreeNode que j'ajoute sans problème dans le TreeView, la méthode ...ChildNodes.Add( ) les acceptant sans soucis car dérivants de TreeNode.

    Mais dans la gestion de l'évènement SelectedNodeChanged, je ne peux pas créer une référence d'objet CTreeNode pointant vers le TreeView.SelectedNode car à l'exécution, j'ai un message d'erreur m'indiquant qu'il ne peut pas le caster ( or le CTreeNode dérive de TreeNode ! ).

    Ca génère sans problème en revanche....

    Des pistes ?

  2. #2
    Membre éclairé
    Inscrit en
    Février 2006
    Messages
    256
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 256
    Par défaut
    Toujours pas de pistes ?

  3. #3
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Billets dans le blog
    3
    Par défaut
    A priori, c'est plutôt normal, puisque la propriété SelectedNode renvoie un objet de type TreeNode. Si tu attends un objet de type CTreeNode, tu as plusieurs options :

    1. Créer un type CTreeView par exemple, qui va hériter de TreeView, et dans lequel tu pourras mettre une propriété SelectedNode qui te renverra un objet de type CTreeNode.

    2. Ajouter une méthode d'extension à la classe TreeView, avec un nom du genre GetSelectedNode() et qui te renverra un objet de type CTreeNode. Bien entendu tu devras faire la conversion manuellement entre CTreeNode et TreeNode dans cette méthode.

    3. Ajouter une méthode quelque part, qui te fasse la conversion entre un TreeNode et un CTreeNode.

    Personnellement, je pense qu'il vaut mieux passer par la première solution...
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  4. #4
    Membre éclairé
    Inscrit en
    Février 2006
    Messages
    256
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 256
    Par défaut
    Plutôt normal ?

    Mon CTreeNode dérive de TreeNode et c'est plutôt normal ?
    Langage de m.de !

    En C API Win32, j'aurais déjà terminé.

  5. #5
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par Denn's Voir le message
    Plutôt normal ?

    Mon CTreeNode dérive de TreeNode et c'est plutôt normal ?
    Langage de m.de !

    En C API Win32, j'aurais déjà terminé.
    Avant de critiquer le langage, commence par chercher où tu as fait une erreur (car je n'ai aucun doute sur le fait que c'est toi qui t'es planté...). Mais comme tu n'as pas posté ton code, il est impossible de dire si l'erreur est normale ou pas...

    EDIT: tu fais des sites web en "C API Win32", ou tu t'es juste planté de forum ?

  6. #6
    Membre éclairé
    Inscrit en
    Février 2006
    Messages
    256
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 256
    Par défaut
    Non je fais les applications en C, et le web n'est qu'une manière de les utiliser.

    Dans le Page_load :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
         ...
         Dim dr As SqlDataReader = cmd.ExecuteReader
         Do While dr.Read
              racine.ChildNodes.Add(New CTreeNode("info", dr(0), dr(1)))
         Loop
    Dans le SelectNodeChanged:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
         Dim itemSelected As CTreeNode = CType(m_arbre.SelectedNode, CTreeNode)

  7. #7
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Mmm... en fait en Windows Forms ça marcherait, mais en ASP.NET y a des subtilités que je connais pas très bien (le web c'est pas trop mon domaine...). En gros, quand l'évènement SelectedNodeChanged se produit, c'est suite à un postback, donc les objets sont recréés à partir du ViewState. En l'occurrence, le ViewState ne contient pas d'info comme quoi les nodes sont de type CTreeNode, et donc ils sont désérialisés en TreeNode. Il y a sans doute quelque chose à faire dans ta classe CTreeNode pour que ça fonctionne, mais je laisse ça à des gens qui connaissent ASP.NET mieux que moi...

Discussions similaires

  1. [CASTS]problème de cast de Time
    Par DeVoN dans le forum Langage
    Réponses: 7
    Dernier message: 22/02/2006, 17h24
  2. [JDBC Driver][JSTL] Problème de cast de données
    Par GyLes dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 27/09/2005, 10h00
  3. problème de cast!
    Par LaseLiep dans le forum Langage
    Réponses: 3
    Dernier message: 03/06/2005, 09h30
  4. Problème de cast/serialization/externalization ?
    Par Linlin dans le forum CORBA
    Réponses: 1
    Dernier message: 06/12/2004, 16h46
  5. [C#] Problème de casting de @IDENTITY
    Par bilb0t dans le forum Accès aux données
    Réponses: 7
    Dernier message: 03/09/2004, 09h42

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