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

 .NET Discussion :

Problème de Bind en mode Edit


Sujet :

.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 80
    Par défaut Problème de Bind en mode Edit
    Bonjour

    J'ai un Formview, basé sur un objdatasource1 dans lequel j'ai 3 champs.
    - un champ date
    - un champ Dropdown 1 (liste d'objets 2)
    - un champ Dropdown 2 (liste d'objets 3)

    La liste des valeurs de Dropdown2 dépend des valeurs du champ date et dropdown1


    En Edition les 3 champs sont évalués à partir de leur valeur.
    ex

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <asp:DropDownList ID="ddl1" runat="server" DataSourceID="ods1"
    DataTextField="Nom" DataValueField="ID" 
    SelectedValue='<%# Eval("monobjet.ID") %>' >
     </asp:DropDownList><br />
    Lorsque je sélectionne la Date avec postback j'ai une erreur de ce type :


    Les méthodes de liaison de données telles que Eval(), XPath() et Bind() peuvent uniquement être utilisées dans le contexte d'un contrôle lié aux données.
    Lorsque j'enlève la SelectedValue cela fonctionne de nouveau.


    Je voudrais à la fois afficher les valeurs de l'objet en cours dans le formview
    Et pouvoir changer/réinitialiser les valeurs en sélectionant une nouvelle date par ex .

    Pouvez-vous me dire comment je peux résoudre ce genre de problème ?



    Merci

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    360
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 360
    Par défaut
    attention Eval() est readonly alors que Bind() tu peux lire et ecrire
    http://msdn.microsoft.com/en-us/library/ms178366.aspx

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 80
    Par défaut
    merci

    L'Eval est uniquement faite pour initialiser les dropdowns aux valeurs des propriétés de l'objet principal.

    Pour l'enregistrement je recrée un objet, je lui colle les valeurs et je le passe en paramètre d'une fonction du BLL qui va faire ses vérifs et calculs métiers avant d'appeler une procédure d'update.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    80
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2006
    Messages : 80
    Par défaut
    Bon , j'ai débindé le champ et ajouté la méthode suivante sur le databound de la dropdown.
    PAs certain que cela soit la meilleure solution mais cela semble bien fonctionner.

    j'ai renommé en termes génériques sur le code ici :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
     
    if (formview.CurrentMode == FormViewMode.Edit)
    {
     
    //récupération d'une instance d'objet avec l'id récupéré en paramètre. impossible de se servir du Dataitem car il est à null apres postback 
     
    <div style="margin-left:40px">Monobjet objModif = ObjetProvider.MonobjetManager.GetMonobjetById(int.Parse(_hidMonobjetId.Value));</div>
     
     
    <div style="margin-left:40px">// parcours de la liste pour sélectionner la bonne valeur de la liste
    DropDownList ddl1= (DropDownList)sender;
    foreach(ListItem truc in ddl1.Items)
    {
    <div style="margin-left:40px">if (truc.Value == objModif.SousObjet.ID.ToString())
    {
    <div style="margin-left:40px">truc.Selected= true ;
    return;</div>}</div>}
    }</div>}

Discussions similaires

  1. [Lazarus] Problème avec un TDrawGrid en mode Edition
    Par ChPr dans le forum Lazarus
    Réponses: 19
    Dernier message: 24/06/2011, 22h29
  2. Réponses: 5
    Dernier message: 08/10/2010, 08h45
  3. Problème de "rafraichissement" dans une edit box e
    Par X-K4l1 dans le forum Windows
    Réponses: 1
    Dernier message: 23/08/2005, 11h49
  4. ensemble de données pas en mode edition
    Par XloX dans le forum Bases de données
    Réponses: 3
    Dernier message: 13/06/2005, 12h17
  5. [C#] Mode édition DropDownList
    Par bolo dans le forum ASP.NET
    Réponses: 7
    Dernier message: 14/07/2004, 17h25

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