2009-04-11 4 views
1

Je rencontre des problèmes pour obtenir les valeurs d'une liste déroulante à partir de la fonction FIndControl.Aide: impossible de fusionner l'objet Dropdownllist en IConvertible

Voici le code que je suis en train d'utiliser:

currentCategoryID = Convert.ToInt32(((DropDownList)r.FindControl("DDLCategories"))); 

La valeur de la currentCategoryID dans la base de données est un « int »

Lorsque j'exécute le code ci-dessus je reçois ce message d'erreur:

Impossible de convertir un objet de type 'System.Web.UI.WebControls.DropDownList' pour taper 'System.IConvertible'.

En utilisant le même code que j'ai dû retireve les valeurs de zone de texte en utilisant ce code et tout est ok

currentAddress = ((TextBox)r.FindControl("txtAddress")).Text; 

Quelqu'un pourrait-il s'il vous plaît me diriger dans la bonne direction sur la façon d'écrire ce code correctement

Répondre

3

Vous essayez de convertir le DropDownList lui-même à un Int32 plutôt que sa valeur. Vous devriez aller plus loin dans le contrôle pour récupérer la valeur avant de la convertir. Par exemple,

currentCategoryID = Convert.ToInt32(((DropDownList)r.FindControl("DDLCategories")).SelectedItem.Value); 
+0

Merci Volte, je savais que c'était quelque chose de simple que je pardonnais. – Jason

1

Votre premier extrait tente de convertir le contrôle DropDownList lui-même en int. Ce que vous devez faire est extrait la valeur sélectionnée ou élément sélectionné ou autre, en fonction de ce cadre UI que vous utilisez:

object selectedId = ((DropDownList)(r.FindControl("...")).SelectedValue; 
int currentCategoryId = Convert.ToInt32(selectedId); 
Questions connexes