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 :

DropDownList dans une GridView et variable Enabled depuis C#


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7
    Par défaut DropDownList dans une GridView et variable Enabled depuis C#
    Bonjour à tous,

    Mon soucis et que je n'arrive pas à modifier la valeur "Enabled" d'une DropDownList qui se situe dans une GridView.

    Alors tout d'abord voici ce à quoi ça ressemble graphiquement parlant :



    Et pendant la modification :




    Le code ASP.Net s'y référent :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <ItemTemplate>
         <asp:DropDownList ID="listTypeV" runat="server" DataSourceID="SqlDataSource2" DataTextField="TV_Type_Vehicule" DataValueField="TV_Id_Type_Vehicule" SelectedValue='<%# Bind("TV_Id_Type_Vehicule") %>'>
         </asp:DropDownList>
    </ItemTemplate>
    Le tout bien évidemment dans une GridView.


    Ce que je pensais faire : mettre la DropDownList sur "Enabled = false" par défaut et utiliser l'évènement RowEditing pour changer ce statu à "true" histoire de laisser l'utilisateur saisir une valeur différente dans la DropDownList.

    Seulement lorsque je recherche le contrôle depuis le code C# qui s'y réfère, je n'arrive pas à le trouver.

    Primo en tapant "nomDeMaGridView.nomDeMaDropDownList", évidemment je n'y accède pas.

    Ensuite en utilisant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (DropDownList)TableTest1.FindControl("listTypeV")
    Pas moyen de trouver le contrôle qui s'y réfère.

    Et même par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (DropDownList)TableTest1.SelectedRow.FindControl("listTypeV")
    Je n'accède pas au contrôle.


    Pourtant l'objet existe bien puisque j'arrive à utiliser la DropDownList quand je teste le code si je la laisse à "Enabled = true".


    Et dans la partie graphique de Visual Studio j'ai bien :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tableTest1.Column6Typedevéhicule.ItemTemplate.listTypeV

    Bref je ne vois pas ce qui fait que je ne peux accéder à cet objet pour le modifier.

    Comme je suis débutant en ASP.Net, j'ai peut être loupé un truc simple, mais j'ai beau faire des recherches, je ne vois pas.

    Si jamais vous avez une idée...


    ________________________________________________________________
    Configuration de la plateforme :

    Windows Server 2003 à jour, Visual Studio 2005 à jour, Framework .Net 3.5, VSTO, VSeWSS1.1, etc. ...

  2. #2
    Membre éprouvé
    Inscrit en
    Septembre 2007
    Messages
    1 137
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 137
    Par défaut
    passe peut etre par un objet gridviewRow pour récupérer ton elément.
    tongridview.gridviewrow.findcontrol(tonelement);

    D'habitude je fais cela dans la méthode gridviewdatabound.

    a voir

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7
    Par défaut
    Citation Envoyé par tortuegenie Voir le message
    passe peut etre par un objet gridviewRow pour récupérer ton elément.
    tongridview.gridviewrow.findcontrol(tonelement);

    D'habitude je fais cela dans la méthode gridviewdatabound.

    a voir
    Je vais essayer, mais je pense que si ça devait marcher, il n'y aurait pas de raison pour que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    (DropDownList)TableTest1.SelectedRow.FindControl("listTypeV")
    ne fonctionne pas, non ?

    Je pars essayer de ce pas


    EDIT :

    Bon je viens d'essayer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    foreach (GridViewRow mesRows in tableTest1.Rows)
    {
        myControl = mesRows.FindControl("listTypeV");
        myControl.Enabled = true;
    }
    Et bien toujours la même erreur au niveau du "myControl" : l'objet n'est pas référencé.
    J'arrive toujours pas à savoir pourquoi il trouve pas le contrôle "listTypeV"

    EDIT 2 : Oups, petite erreur dans le code

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7
    Par défaut
    Bon après correction de la coquille dans le code, il semble bien trouver un objet avec ID "listTypeV", puisque "hello" est bien instancié.

    Cependant lorsque je met la variable "Enabled" à "true", il ne se passe rien (lorsque par défaut le comportement est à "false").

    Bref je suis pas plus avancé

  5. #5
    Membre éprouvé
    Inscrit en
    Septembre 2007
    Messages
    1 137
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 137
    Par défaut
    Passe le débugger pour voir ce qui s'y passe exactement, à partir du moment où il te trouve l'id c'est qu'il y a des choses qui fonctionnent et que tu ne dois pas etre très loin

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7
    Par défaut
    Citation Envoyé par tortuegenie Voir le message
    Passe le débugger pour voir ce qui s'y passe exactement, à partir du moment où il te trouve l'id c'est qu'il y a des choses qui fonctionnent et que tu ne dois pas etre très loin
    Effectivement, quand j'ai posé les points d'arrêt, ma variable temporaire "hello" contenait bien un objet avec tout les attributs qui vont avec.

    Cependant j'ai pas trouvé l'attribut "Enabled" dans la liste (il est pas proposé par l'auto complétion de VS d'ailleurs) donc je comprend pas.

    L'exécution semble bien se passer, quand je passe "Enabled" à "true", mon "hello.Enabled" prend bien la bonne valeur (vérifiée par un autre point d'arrêt) mais aucun changement du point de vue visualisation, la DropDownList reste grisée.

    En tout cas merci pour l'aide

Discussions similaires

  1. Accés à une DropDownlist dans une GridView
    Par Hassna10 dans le forum ASP.NET
    Réponses: 6
    Dernier message: 18/07/2011, 15h11
  2. Insérer une DropDownList dans une GridView
    Par Delphi-ne dans le forum ASP.NET
    Réponses: 4
    Dernier message: 14/05/2009, 09h15
  3. afficher valeur variable dans une gridview
    Par fido1 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 08/09/2008, 11h48
  4. Réponses: 4
    Dernier message: 31/01/2008, 18h22
  5. Inclure une dropdownlist dans un gridview
    Par Delphi-ne dans le forum ASP
    Réponses: 1
    Dernier message: 31/08/2007, 10h41

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