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 :

ListView DropDownList et problème de databinding


Sujet :

ASP.NET

  1. #1
    Expert confirmé
    Avatar de neo.51
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    2 663
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 663
    Par défaut ListView DropDownList et problème de databinding
    Bonjour,

    Voilà j'ai un listView qui en mode édition utilise une DropDownList. Je remplis la dropDownList sur le onLoad, mais je voudrais aussi que l'item selectionné par défaut corresponde à la valeur initiale du champ. Le code devrait-être comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <EditItemTemplate>
                        <tr runat="server" id="ROWEDIT">
                           ...
                            <td>
                                <asp:DropDownList ID="DDlDechetEdit" runat="server" OnLoad="INITDDL" selectedValue='<%# Bind("IDDECHET") %>'/>
                            </td>
    </tr>
    Le problème c'est qu'il y a un bug en asp.net sur ce code :
    http://131.107.112.14/VisualStudio/f...dbackID=337215

    Et les workarround proposés ne m'avancent pas vraiment.

    Donc la seule solution qu'il me reste c'est de me cogner le binding à la paluche

    Donc je pensais partir sur ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    void m_ListView_PreRender(object sender, EventArgs e)
            {
                ListView m_grille = (ListView)sender;
     
                if (m_grille.EditIndex > -1)
                {
                    DropDownList dl = (DropDownList)m_grille.Items[m_grille.EditIndex].FindControl("DDlDechetEdit");
     
                }
            }
    Bon ok, mais maintenant, sachant que ma ListView a une SqlDataSource en dataSource, comment je retrouve la selectedValue à définir pour ma dropDownList :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    void m_ListView_PreRender(object sender, EventArgs e)
            {
                ListView m_grille = (ListView)sender;
                
                if (m_grille.EditIndex > -1)
                {
                    DropDownList dl = (DropDownList)m_grille.Items[m_grille.EditIndex].FindControl("DDlDechetEdit");
                   dl.SelectedValue = ?
                }
            }
    Je suis pas loin mais il me manque ce truc, une idée ?

  2. #2
    Membre très actif
    Inscrit en
    Janvier 2004
    Messages
    208
    Détails du profil
    Informations forums :
    Inscription : Janvier 2004
    Messages : 208
    Par défaut
    salut

    j'ai du mal a comprendre ton probleme mais dans l'eventualité est ce que ta valeur de Dropdown est un index relationnel avec ton listView Binder.

    si oui, pourquoi ne pas recuperer simplement l'index de selection avec je suppose le DataKey (si il existe pour le ListView) correspondant a la commande avec son argument.

    Maintenant est ce que pre render charge avant l item Created et ou le rowDataBound ?
    le conditionnel du ViewState de L'objet ListView rentre en consideration.
    et le dernier probleme quelle est le type de binding sur l'un et l'autre.

    cordialement

  3. #3
    Expert confirmé
    Avatar de neo.51
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    2 663
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 663
    Par défaut
    si oui, pourquoi ne pas recuperer simplement l'index de selection avec je suppose le DataKey (si il existe pour le ListView) correspondant a la commande avec son argument.


    C'est exactement ça qu'il faut que je fasse

    Maintenant est ce que pre render charge avant l item Created et ou le rowDataBound ?
    Le pre render c'est juste avant l'affichage donc tout ce qui est création et databinding est déjà éffectué.

    le conditionnel du ViewState de L'objet ListView rentre en consideration.
    Je comprend pas bien ta remarque mais pas de problème de viewstate en vue.

    Pour éssayer de reformuler mon problème pour ceux qui tombent sur ce sujet :
    Il y a un bug en asp.net 3.5 qui fait que lorsqu'on a un ListView et une dropDownList dans un EditItem on ne peut pas binder le remplissage sur une source de données et binder le selectedValue sur une autre source de données.

    Donc faut insérer du code pour faire un binding manuel dans les events qui vont bien...


    pour ton aide

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 31/12/2009, 14h11
  2. Problème avec DataBinding
    Par Steven62 dans le forum Windows Forms
    Réponses: 5
    Dernier message: 30/03/2008, 21h00
  3. Problème de DataBind() sur des DropDownList
    Par getz85 dans le forum ASP.NET
    Réponses: 10
    Dernier message: 28/02/2008, 15h31
  4. Réponses: 1
    Dernier message: 19/02/2008, 14h55
  5. Réponses: 10
    Dernier message: 15/12/2007, 10h14

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