Bonjour tout le monde,

Je me rappelle avoir il y a longtemps inséré du code C# dans une page ASP, afin de pouvoir insérer le résultat d'un calcul, mais j'ai oublié comment, si ce n'est qu'il devait y avoir des balises commençant ou finissant par <%. Il doit bien y avoir une référence quelque part des balises utilisables en ASP ? Le site asp.net semblerait un endroit pas mal pour mettre ça, je suis peut-être passé devant sans voir.

Voici un exemple où ceci pourrait me servir, à moins que quelqu'un me souffle une solution plus adaptée.

J'affiche un DetailsView présentant une annonce liée à une région et à une catégorie, cela dans le cadre du site exemple AffairesSansRisque proposé par le coach Microsoft.

Pour les modifications, le EditItemTemplate contient une DropDownList, qui par défaut contient la région à laquelle est liée l'annonce avant modification. La DropDownList permet de sélectionner une autre région. Plus loin même principe avec une autre DropDownList pour la catégorie d'annonce.

Tout ça fonctionne bien, jusqu'à ce que je me pique de créer une annonce qui n'est liée à aucune région (ou aucune catégorie, ou les deux). Nous sommes d'accord que cela modifie le schéma de données, mais c'est un cas qu'on doit savoir couvrir.

En affichage, ça baigne, après avoir adapté la jointure de la requête pour la page DetailsAnnonce.aspx. Mais lorsque je demande à modifier, là je me fais insulter :
'DropDownList1' a un SelectedValue qui n'est pas valide, car il n'existe pas dans la liste des éléments.
Nom du paramètre : value
En effet, il ne me semble pas que HTML accepte une DropDownList avec en SelectedValue une valeur qui n'est pas dans la liste. Donc, si on ne veut sélectionner aucune valeur à l'ouverture du EditItemTemplate (ce qui est le cas si l'annonce n'est liée à aucune région), alors il faut tout simplement que la clause SelectedValue ne soit pas implémentée.

D'où l'idée des balises permettant un traitement conditionnel. Par où on attaque ?