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 :

DDL dans GridView - SelectedIndex venant d'une classe


Sujet :

ASP.NET

  1. #1
    Membre expérimenté Avatar de bizet
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2005
    Messages
    717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 717
    Points : 1 338
    Points
    1 338
    Par défaut DDL dans GridView - SelectedIndex venant d'une classe
    salut tt le monde.

    Le titre semble etre incompréhensible mais le problème est plus simple.

    Dans mon GridView, j'ai une Dropdownlist :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    <ItemTemplate>
                            <asp:DropDownList runat="server" AutoPostBack="true" 
                                    ID="Profil" DataSourceID="ObjectDataSource1" 
                                    DataTextField="Name" DataValueField="ObjectId" 
                                    ></asp:DropDownList>
     
                            </ItemTemplate>
    La source est du GridView est une liste de Site :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    public string NameSite
            {
                get { return _sNameSite; }
                set { _sNameSite = value; }
            }
     
     ...........
            private Profil _oProfil;
            public Profil Profil
            {
                get { return _oProfil; }
                set { _oProfil = value; }
            }
    et comme vous pouvez le voir dans un site, il y a une classe Profil :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    public string Name
            {
                get { return _sName; }
                set { _sName = value; }
            }
            public string Id
            {
                get { return _Id; }
                set { _Id = value; }
            }
    Et la source de mon satasource est la liste de profil
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="getAllProfilInDB" ......></asp:ObjectDataSource>
    Or dans mon ddl je veux prendre la valeur Id du profil se trouvant dans le Site.

    Comme ce site est entré en source de GridView, je pensais que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SelectedValue='<%#Bind("Profil.Id") %>'
    me permetterai d'avoir cette valeur mais non raté.

    J'ai essayé plusieurs solution et rien n'a fonctionné.

    Est ce que je dois modifié ma classe pour ne plus avoir l'objet Profil mais juste son ID ou est ce que je m'y prends mal??

    Merci de vos précisions.

  2. #2
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 22
    Points : 26
    Points
    26
    Par défaut
    Bonjour bizet,

    Si ton objectif et de lier la 'value' de ta DropDownList et celle de ton objet 'Profil', tu dois pouvoir essayer de faire quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <asp:GridView ID="GridView1" runat="server" DataSourceID="ObjectDataSource1" AutoGenerateColumns="False">
                <Columns>
                    <asp:BoundField DataField="NameSite" HeaderText="NameSite" SortExpression="NameSite" />
                    <asp:TemplateField HeaderText="Profil" SortExpression="Profil">
                        <ItemTemplate>
                            <asp:DropDownList ID="DropDownList1" runat="server"
                                DataSourceID="ObjectDataSource2" DataTextField="Name" DataValueField="Id" SelectedValue='<%# Eval("Profil.Id") %>'>
                            </asp:DropDownList>
                        </ItemTemplate>
                    </asp:TemplateField>
                </Columns>
            </asp:GridView>
    <asp:ObjectDataSource ID="ObjectDataSource2" runat="server" SelectMethod="getAllProfilDB"
                                TypeName="Profil"></asp:ObjectDataSource>
    Je ne sais pas si cette solution te premet de résoudre totalement ton problème mais c'est un début.

    Bonne journée et bon code

  3. #3
    Membre expérimenté Avatar de bizet
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2005
    Messages
    717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 717
    Points : 1 338
    Points
    1 338
    Par défaut
    Salut

    bon pour le moment j'ai fait en sorte de vouloir recupérer l'id dans un label pour vérifier que je récupérais bien l'id et ca ne semble pas etre le cas.

    J'ai supprimé ma DDL et je fais un simple

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    <asp:Label ID="lbl" runat="server" Text='Id profil : <%# DataBinder.Eval(Container.DataItem,"Profil.Id") %>'/>
    J'ai testé avec DataBinder.Eval ; DataBinder.Bind, Eval et Bind seul, ca ne fonctionne pas.
    Je récupère systématiquement rien. Le get sur l'objet n'est pas fait.

    Il semblerait donc qu'il ne soit pas possible de récupérer un objet et d'en prendre une propriété??

    PS : j'ai bien vérifié, la valeur existe bien dans la liste des Sites

  4. #4
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France, Indre et Loire (Centre)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 22
    Points : 26
    Points
    26
    Par défaut
    J'ai répondu sur ton autre post

  5. #5
    Membre expérimenté Avatar de bizet
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2005
    Messages
    717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2005
    Messages : 717
    Points : 1 338
    Points
    1 338
    Par défaut
    Bon j'ai réussi grâce aux précisions de l'autre post.

    comme la valeur peut etre 0 si non assigné, j'ai du passé par du code behind :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    foreach (GridViewRow gvr in gridViewSites.Rows)
                    {
     
                        int profilId = Convert.ToInt32(((HiddenField)gvr.FindControl("hiddenProfilId")).Value);
                        if (profilId != 0)
                            ((DropDownList)gvr.FindControl("ddlProfil")).SelectedValue = profilId.ToString();
                    }

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

Discussions similaires

  1. afficher des images dans un mail venant d'une bdd
    Par arckaniann dans le forum Langage
    Réponses: 2
    Dernier message: 09/05/2013, 10h45
  2. Recuperer valeur DDL dans gridview
    Par Kurapika-shinji dans le forum ASP.NET
    Réponses: 2
    Dernier message: 03/08/2011, 08h52
  3. selectedIndex dans une classe extends ViewStack
    Par cocacola0589 dans le forum Flex
    Réponses: 2
    Dernier message: 27/01/2010, 14h16
  4. Réponses: 2
    Dernier message: 26/12/2006, 22h40
  5. Fonction callback dans une classe
    Par julian_ross dans le forum MFC
    Réponses: 8
    Dernier message: 02/03/2004, 11h42

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