Logo du forum
 

Forum TTH-News

| Inscription | | Recherche | | FAQ | | Accueil | | Liste des membres |
| Calendrier |
 
Vous n'êtes pas identifié! [Connexion] ou [Inscription] Forum » Programmation » [C / C++ / C#] » C#/ASP.Net | DropDownList dans une GridView et variable Enabled depuis C#
Login Mot de passe

3 visiteurs sur ce topic (0 membre(s), 3 invité(s) )

Auteur
Sujet : C#/ASP.Net | DropDownList dans une GridView et variable Enabled depuis C#
Flymann TTH



 






Message du 06-06-2008 @ 15:18


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 :


<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 :

(DropDownList)tableTest1.FindControl("listTypeV")



Pas moyen de trouver le contrôle qui s'y réfère.

Et même par :
Code :

(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 :

tableTest1.Column6Typedevéhicule.ItemTemplate.listTypeV



J'ai également essayé ça :

Code :


foreach (GridViewRow mesRows in tableTest1.Rows)
{
myControl = (DropDownList)mesRows.FindControl("listTypeV");
myControl.Enabled = false;
}



après qu'on m'ai suggéré de passer par les "rows", mais même résultat :(


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. ...


EDIT : Suggestion pour :fotasoul: : faudrait que les caractères de la partie code soient plus visibles.
Je pense qu'une barre de scrolling lorsque ça dépasse la taille de la fenêtre serait un plus.
Et pour finir pourquoi par de la coloration syntaxique tant qu'on y est ?
Oui je sais... je pousse :D


[message édité le 06-06-2008 @ 23:48 Par Flymann TTH]
- Haut de page -
Flymann TTH



 






Message du 11-06-2008 @ 10:43


Bon après pas mal de recherches (voir http://www.developpez.net/forums/showthread.php?t=564495) j'ai finis par y arriver, et c'était beaucoup plus simple que prévu :

Il suffisait de créer un "EditItemTemplate" pour avoir ce que je voulais.

Code :

<asp:TemplateField HeaderText="Type de véhicule" SortExpression="TV_Id_Type_Vehicule">

<ItemTemplate>
<asp:DropDownList ID="listTypeV" runat="server" DataSourceID="SqlDataSource2"
DataTextField="TV_Type_Vehicule" DataValueField="TV_Id_Type_Vehicule" SelectedValue='<%# Bind("TV_Id_Type_Vehicule") %>' Enabled="False">
</asp:DropDownList>
</ItemTemplate>

<EditItemTemplate>
<asp:DropDownList ID="listTypeV" runat="server" DataSourceID="SqlDataSource2"
DataTextField="TV_Type_Vehicule" DataValueField="TV_Id_Type_Vehicule" SelectedValue='<%# Bind("TV_Id_Type_Vehicule") %>' Enabled="True">
</asp:DropDownList>
</EditItemTemplate>

</asp:TemplateField>



En attendant, si jamais quelqu'un peut me dire pourquoi mon "code behind" n'avait aucun effet sur la partie utilisateur, histoire que je sache pour le futur, je suis toujours preneur.

- Haut de page -

Plan du forum | Contacter l'administrateur

Powered by SoulBB 3.0.1
© Soulmanto, 2003-2010

Valid XHTML 1.0 Transitional

Page générée en 0.024 secondes