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 :

[VB.NET] Problème liste Parent-Enfant dans DataGrid


Sujet :

ASP.NET

  1. #1
    Membre à l'essai
    Profil pro
    Indépendant en informatique
    Inscrit en
    Avril 2003
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Indépendant en informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 25
    Points : 13
    Points
    13
    Par défaut [VB.NET] Problème liste Parent-Enfant dans DataGrid
    Hello,

    je développe une appli web avec vs.net 2003 et je rencontre une petit difficulté. J'ai cherché sur les forums, mais sans trop de résultats.

    En fait je crée une datagrid en utilisant les templates colonnes. Dans le footer de celle-ci, j'ai mis une ligne d'ajout de données. Celle-ci se compose de deux dropdownlist et de quelques textbox.

    Lorsque je fais un choix dans ma première liste, je voudrais que ma deuxième liste se mette à jour (parent-enfant).

    J'arrive au chargement de la grille à charger ma ddl parente avec l'évènement ItemDataBound. Ensuite lorsque je change une valeur de cette liste, je rentre bien dans mon évènement ddl_SelectedIndexChanged, mais la lorsque je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    dim maddl as dropDownList
    maddl = CType(maDatagrid.findControl("monControl"), dropDownList)
    je n'arrive pas à récupérer ma ddl. maddl indique nothing.

    Comment puis-je faire.
    Merci

  2. #2
    Membre à l'essai
    Profil pro
    Indépendant en informatique
    Inscrit en
    Avril 2003
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Indépendant en informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 25
    Points : 13
    Points
    13
    Par défaut
    Personne ne peut donc m'aider?

    Merci d'avance

  3. #3
    Membre habitué

    Inscrit en
    Octobre 2002
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 139
    Points : 177
    Points
    177
    Par défaut
    Salut,

    il faut que tu trouves le moyen d'aller dans le footer de tes templatecolumn. Le controle que tu cherches se trouve dans la liste des controles du footer et non dans la liste des controles du datagrid.
    En gros, le control parent de ta ddl est le footer (ou la colonne).

    krest

  4. #4
    Membre à l'essai
    Profil pro
    Indépendant en informatique
    Inscrit en
    Avril 2003
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Indépendant en informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 25
    Points : 13
    Points
    13
    Par défaut
    oui, je veux bien mais je n'y arrive pas.

    En plus, ces listes je les ai dans mon footer et lorsque je met une des lignes de ma grille en mode edit.

  5. #5
    Membre habitué

    Inscrit en
    Octobre 2002
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 139
    Points : 177
    Points
    177
    Par défaut
    Salut,

    tu sais réussi à gérer l'évévenement de changement d"index donc tu peux trouver le seconde ddl. Tu peux obtenir le control parent de la première et de ce fait la seconde ddl.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    dim ctrl as System.Web.Ui.Web.Control
    dim ddl2 as System.Web.UI.WebControl.DropDownList
    ctr = Ctype(e, System.Web.UI.WebControl.DropDownList).parent
    ddl2 = ctype(ctrl.controls("monControl"),System.Web.UI.WebControl.DropDownList)
    'ensuite faire le traitement sur la 2° ddl
    je pense que le code peut convenir mais il n'est pas testé.

    krest

  6. #6
    Membre à l'essai
    Profil pro
    Indépendant en informatique
    Inscrit en
    Avril 2003
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Indépendant en informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 25
    Points : 13
    Points
    13
    Par défaut
    Merci, tout fonctionne nickel.

    Je n'ai plus pensé à la solution d'utilisé le parent. Merci encore, tu m'as sorti une grande épine du pied.

    Bonne journée

  7. #7
    Membre actif
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    849
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juillet 2004
    Messages : 849
    Points : 295
    Points
    295
    Par défaut
    Comment fais-tu pour rajouter un evenement a ta dropdownlist qui est dans ton datagrid ?

    Quand je clique dessus, je n'ai pas accès à "l'éclair" pour rajouter un évenement.

  8. #8
    Membre à l'essai
    Profil pro
    Indépendant en informatique
    Inscrit en
    Avril 2003
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations professionnelles :
    Activité : Indépendant en informatique

    Informations forums :
    Inscription : Avril 2003
    Messages : 25
    Points : 13
    Points
    13
    Par défaut
    Voila le code html que tu devrais avoir sur ta grille:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    <asp&#58;TemplateColumn HeaderText="Environment">
    	<ItemTemplate>
    		<%# DataBinder.Eval&#40;Container.DataItem, "NomDuChamp"&#41; %>
    	</ItemTemplate>	
    	<EditItemTemplate>
    		<asp&#58;DropDownList Runat="server" ID="maddl" AutoPostBack="True" DataTextField="NomDuChamp"
    		DataValueField="IdDuChamp" OnSelectedIndexChanged="maddl_SelectedIndexChanged"></asp&#58;DropDownList>
    	</EditItemTemplate>
    </asp&#58;TemplateColumn>

    Et dans ton code behind tu rajoutes l'évênement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Public Sub maddl_SelectedIndexChanged&#40;ByVal sender As Object, ByVal e As EventArgs&#41;
    	'ton traitement
    End Sub

    Et finalement pour remplir ta datagrid tu peux faire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     Private Sub taDatagrid_ItemDataBound&#40;ByVal sender As Object, ByVal e As System.Web.UI.WebControls.DataGridItemEventArgs&#41; Handles dgAdminDrive.ItemDataBound
            Dim maddl As DropDownList
     
            If e.Item.ItemIndex = dgAdminDrive.EditItemIndex AndAlso e.Item.ItemIndex <> -1 Then           
                maddl = CType&#40;e.Item.FindControl&#40;"maddl "&#41;, DropDownList&#41;
     
    		'Code pour remplir ta ddl          
            End If
     End Sub
    J'espère que tout ceci pourra t'aider

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

Discussions similaires

  1. liste (parents, enfants) en dictionnaire !
    Par yappp dans le forum Général Python
    Réponses: 8
    Dernier message: 10/04/2013, 11h19
  2. Réponses: 1
    Dernier message: 18/05/2012, 18h57
  3. Parent/Enfant dans une même table
    Par le_binr dans le forum Requêtes
    Réponses: 1
    Dernier message: 18/03/2009, 15h27
  4. Réponses: 5
    Dernier message: 20/08/2008, 18h54
  5. Réponses: 8
    Dernier message: 14/05/2004, 12h18

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