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

C# Discussion :

DataColumn expression ne se met pas à jour


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2007
    Messages : 249
    Par défaut DataColumn expression ne se met pas à jour
    Salut,

    Dans une Table d'un DataSet typé j'ai une colonne NomAffichage qui est une colonne calculée par expression.
    Elle doit contenir le contenu de la colonne NOM et ajouter "(Inactif)" lorsque la colonne (bool) LotActivé est true (si si. Je sais, c'est paradoxal mais c'est ainsi).

    L'expression est donc :
    IIF(LotActif, Nom + ' (Inactif)', Nom)

    Lorsque je charge la table, toutes les valeurs de la colonne NomAffichage sont bien calculées.
    Dans un form, un TextBox est lié à la table via un bindingsource.
    Lorsque je modifie le nom dans le textbox, la valeur de la colonne NOM de la table est bien modifiée, mais la colonne NomAffichage reste inchangée. Et comme la colonne est en expression, elle est en lecture seule et je ne peux donc pas la modifier "à la main" (de toute manière je ne vois pas l'intérêt de l'expression si je dois la recalculer "à la main").

    Y a-t-il quelque chose que j'ai mal fait ?
    Comme régler ce problème ?

    Merci de vos z'avis z'avisés.

  2. #2
    Membre actif
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2010
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2010
    Messages : 34
    Par défaut
    Je ne suis pas sûr d'avoir bien compris le sens de vôtre question, surtout que je ne suis pas sûr que l'on puisse lier un TextBox avec un DataSet même si vous avez utilisé
    http://msdn.microsoft.com/en-us/libr...abindings.aspx
    Un TextBox contient en général qu'une seule chaîne de caractères ( donc une valeur unique). Il est possible de charger un tableau de String dans un TextBox ( mais ce n'est pas simple )
    Un DataSet contient un ou plusieurs DataTable(s) , chacune pouvant contenir plusieurs enregistrements. Pour pouvoir lier un TextBox à la valeur de vôtre colonne calculée, il faut en realité lier à un enregistrement donné.
    Pour pouvoir comprendre vôtre problème, pourriez-vous fournir le code du "binding" entre votre TextBox et votre ligne de la table ?

    Bonne journée

  3. #3
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    249
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations forums :
    Inscription : Mars 2007
    Messages : 249
    Par défaut
    Bonjour et merci de votre intérêt.

    je me suis visiblement mal exprimé, parce que ce n'est pas cela du tout.

    La DataTable contient, entre autre, 3 colonnes, soit NOM (string), LotActif (bool) et NomAffichage(string).

    NomAffichage est une colonne sous expression.

    Exemple de valeurs

    NOM ......|......LotActif......|......NomAffichage (calculé automatiquement par l'expression lors du Fill de la DataTable)
    Parcelle1.|.......False.........|........Parcelle1
    Parcelle2.|.......True..........|........Parcelle2 (Inactif)
    Parcelle3.|.......False.........|........Parcelle3

    Un TextBox est lié à Nom
    Admettons que la form des détails de Parcelle1 soit affichée.

    Je modifie le texte du TextBox lié en remplaçant "Parcelle1" par "Test250".
    J'obtiens dans ma DataTable :
    NOM ......|......LotActif......|......NomAffichage
    .Test250.|.......False.........|........Parcelle1
    Parcelle2.|.......True..........|........Parcelle2 (Inactif)
    Parcelle3.|.......False.........|........Parcelle3

    Pourquoi NomAffichage n'est-il pas recalculé en "Test250" ?
    Et bien entendu, comment résoudre cette énigme ?

    Merci de vos z'avis z'avisés.

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/10/2006, 08h24
  2. Combobox.text qui ne se met pas à jour
    Par davels dans le forum Delphi
    Réponses: 6
    Dernier message: 21/08/2006, 10h29
  3. [AJAX] XMLHTTPREQUEST ne se met pas à jour :-/
    Par franckarts dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 04/08/2006, 18h11
  4. Update Récalcitrante !! Ne met pas à jour !
    Par samlepiratepaddy dans le forum Access
    Réponses: 14
    Dernier message: 28/10/2005, 09h31
  5. un update qui ne met pas à jour
    Par dor_boucle dans le forum Requêtes
    Réponses: 3
    Dernier message: 14/10/2005, 09h31

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