salut,
Comme mon titre l'indique j'aimerais que quand je passe mon gridview en mode edit. Que la valeur du dropdownlist soit positionné sur la bonne valeur.
merci![]()
salut,
Comme mon titre l'indique j'aimerais que quand je passe mon gridview en mode edit. Que la valeur du dropdownlist soit positionné sur la bonne valeur.
merci![]()
Code : Sélectionner tout - Visualiser dans une fenêtre à part <asp:DropDownList ID="ddl" runat="server" SelectedValue='<%# Bind("nom_du_champ") %>'/>
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
salut,
J'avais déjà testé cette solution mais le problème est qu'il me lance une InvalidOpérationException au moment du databind() que je fais dans un event de mon gridview, rowcreated:
Les méthodes de liaison de données telles que Eval(), XPath() et Bind() peuvent uniquement être utilisées dans le contexte d'un contrôle lié aux données.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13 protected void gridDomaine_RowCreated(object sender, GridViewRowEventArgs e) { dtServeur = catalog.getAllServeur(); //////Remplissage de la liste if (e.Row.FindControl("ddlServeur") != null) { ((DropDownList)e.Row.FindControl("ddlServeur")).DataTextField = dtServeur.Columns["srv_nom"].ToString(); ((DropDownList)e.Row.FindControl("ddlServeur")).DataValueField = dtServeur.Columns["srv_id"].ToString(); ((DropDownList)e.Row.FindControl("ddlServeur")).DataSource = dtServeur; ((DropDownList)e.Row.FindControl("ddlServeur")).DataBind(); } }
MErci de votre aide
ah ok, ta GridView n'est pas bindée à une source de données ? Dans ce cas il suffit d'affecter la SelectedValue dans le code-behind...
Aussi, tu devrais stocker dans une variable le résultat du FindControl pour ne pas avoir à l'appeler à chaque fois...
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
J'ai effectivement mon datagrid qui est bondé avec un autre dataTable.
J'ai fait ceci qui me retourne une exception: argumentOutOfRangeException
'ddlServeur' a un SelectedValue qui n'est pas valide, car il n'existe pas dans la liste des éléments.
Nom du paramètre : value
Mais c'est normal vu que mon dtDomaine a été bindé dans mon page_load.
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 protected void gridDomaine_RowCreated(object sender, GridViewRowEventArgs e) { dtServeur = catalog.getAllServeur(); //////Remplissage de la liste if (e.Row.FindControl("ddlServeur") != null) { ((DropDownList)e.Row.FindControl("ddlServeur")).DataTextField = dtServeur.Columns["srv_nom"].ToString(); ((DropDownList)e.Row.FindControl("ddlServeur")).DataValueField = dtServeur.Columns["srv_id"].ToString(); ((DropDownList)e.Row.FindControl("ddlServeur")).DataSource = dtServeur; ((DropDownList)e.Row.FindControl("ddlServeur")).SelectedValue = dtDomaine.Columns["dom_fk_srv"].ToString(); ((DropDownList)e.Row.FindControl("ddlServeur")).DataBind(); } }
Qu'est ce que je dois donc mettre pour le selectedValue?
merci
A mon avis le problème est surtout que tu affectes le SelectedValue avant de faire le DataBind, alors qu'il faut le faire après...
Pas de questions techniques par MP ! Le forum est là pour ça...
Tutoriels : Les nouveautés de C# 6 - Accès aux données avec Dapper - Extraction de données de pages web à l'aide de HTML Agility Pack - La sérialisation XML avec .NET (Aller plus loin) - Les markup extensions en WPF
Partager