26
avril
2010
Comment gérer l’allocation d’une valeur à une dropdown
avril
2010
Un article de Philippe Vialatte
2 Commentaires
Le problème est remonté dans.à peu près toutes les revues de codes de tous les projets web ces derniers temps, alors.
Apparemment, tout le monde à son idée de comment affecter une valeur à une dropdownlist :
- Certains utilisent FindByValue et changent le flag selected à true.
- Certains utilisent SelectedIndex
- Certains utilisent Text
- Certains utilisent SelectedValue
Chaque approche à un nombre de ligne différent se maintient différemment, et peut générer des bugs si elle est mal utilisée
Ma petite proposition est donc la suivante, à savoir l’utilisation d’une fonction d’aide SetDdlValue :
private void SetValueToDropdown(DropDownList ddl, object value){
ddl.ClearSelection();
var item = ddl.Items.FindByValue(value.ToString());
if (item != null) item.Selected = true;
}
Le ClearSelection est la pour éviter de sélectionner plusieurs éléments (et éviter un bug).
Pour le moment, c’est stable, est-ce que quelqu’un voit un problème quelconque avec cette implémentation ?
2 Commentaires + Ajouter un commentaire
Articles récents
Archives
- janvier 2014
- septembre 2013
- août 2013
- mai 2013
- avril 2013
- janvier 2013
- août 2012
- juin 2012
- mai 2012
- avril 2012
- mars 2012
- novembre 2011
- septembre 2011
- août 2011
- juillet 2011
- juin 2011
- mai 2011
- avril 2011
- février 2011
- janvier 2011
- novembre 2010
- octobre 2010
- septembre 2010
- août 2010
- juillet 2010
- juin 2010
- mai 2010
- avril 2010
- mars 2010
- février 2010
- janvier 2010
- décembre 2009
- novembre 2009
- octobre 2009
- septembre 2009
- août 2009
- juillet 2009
- juin 2009
- mai 2009
- avril 2009
- mars 2009
- février 2009
- janvier 2009
c’est effectivement du pinaillage, mais je note (ca pourra toujours servir de façon plus générique)
qui nous fait la version 4.0 avec les codecontract ?
Aller pour pinailler (en toute gentillesse):
ça fait quoi si value est null ? (et si ddl est null ?)
private void SetValueToDropdown(DropDownList ddl, object value)
{
if(ddl == null ) throw new ArgumentNullExpection(« ddl »);
ddl.ClearSelection();
if( value == null )
return;
var item = ddl.Items.FindByValue(value.ToString());
if (item != null) item.Selected = true;
}
Sinon on peut en faire une méthode d’extension :
public static void SetValueToDropdown(this DropDownList ddl, object value)
{
// L’implementation est la même
}