Bonsoir à tous,
J'ai mon GridView pour gérer les avis mis par les utilisateurs sur les films dans ma partie administration. Au niveau de l'affichage du GridView, je souhaite le personnaliser afin d'afficher le titre des films et le pseudo des utilisateurs au lieu d'avoir leur propre ID tant qu'à faire !
Pour cela, j'ai utilisé l'événement OnRowDataBound du GridView et j'affiche les informations que je désire comme cela :
Cela fonctionne correctement. Mais si je veux éditer, je retrouve deux TextBox avec les Id correspondant au titre du film et au pseudo de l'utilisateur. Je cherche donc à y mettre des DropDownList afin de pouvoir changer le titre du film ou le pseudo de l'utilisateur par exemple ce que j'ai réussi à faire par :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11 protected void GridViewAvis_RowDataBound(object sender, GridViewRowEventArgs e) { // Mes deux requêtes qui permettent de récupérer le titre du film et le pseudo de l'utilisateur if (e.Row.RowType != DataControlRowType.Header && e.Row.RowType != DataControlRowType.Footer) { if (e.Row.RowState == DataControlRowState.Normal || e.Row.RowState == DataControlRowState.Alternate) { e.Row.Cells[2].Text = Mon.Pseudo; e.Row.Cells[3].Text = Mon.Titre; } }
Je créé donc dynamiquement les contrôles, mais j'ai encore les TextBox et si je change la valeur de la DropDownList et que je valide l'édition, cela ne fonctionne pas bien évidemment.
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
20 else if (e.Row.RowState == DataControlRowState.Edit){ // DDL utilisateur DropDownList DDLUtilisateur = new DropDownList(); foreach (Utilisateur user in ListeUtilisateurs) { DDLUtilisateur.Items.Add(user.Pseudo); } e.Row.Cells[2].Controls.Add(DDLUtilisateur); // DDL Movies DropDownList DDLFilms = new DropDownList(); foreach (Films film in ListeFilms) { DDLFilms.Items.Add(film.Titre); } e.Row.Cells[3].Controls.Add(DDLFilms); } }
D'où trois questions :
- Comment virer ce TextBox et le remplacer par ma DropDownList ?
- La DropDownList peut-elle se placer directement sur le bon film ou le bon pseudo ? Si oui, comment ?
- Une fois remplacé, comment faire fonctionner le remplacement si je choisis un autre utilisateur ou un autre titre de film ?
Merci d'avance pour vos réponses !
Partager