BOGUE : La propriété Attributes du contrôle ListItem fonctionne uniquement dans un contrôle HtmlSelect

Symptômes

Lorsque vous utilisez un contrôle RadioButton ou DropDownList, si vous tentez de placer une paire clé-valeur dans le contrôle ListItem, les valeurs n'apparaissent pas dans la page résultante.


Par exemple, le code RadioButtonList suivant
<asp:RadioButtonList id="RadioButtonList1" runat="server">
<asp:ListItem Value="v1" Key="k1">1</asp:ListItem>
</asp:RadioButtonList>
- ou -
RadioButtonList1.Items[0].Attributes.Add("key", "k1");
retourne uniquement le résultat suivant :
<input id="RadioButtonList1_0" type="radio" name="RadioButtonList1" value="v1" />
<label for="RadioButtonList1_0">1</label>
De même, le code DropDownList suivant
<asp:DropDownList id="DropDownList1" runat="server">
<asp:ListItem Value="v1" Key="k1">1</asp:ListItem>
</asp:DropDownList>
retourne uniquement le résultat suivant :
<option value=v1>1</option>
"Key=k1" n'apparaît pas.

Cause

Le contrôle ListItem possède une propriété Attributes de type AttributeCollection. Lorsque ListItem se trouve dans un contrôle RadioButtonList ou DropDownList, les paires clé-valeur que vous affectez à la propriété Attributes de ListItem (par programmation ou déclaration) ne sont pas rendues.

Résolution

Pour contourner ce problème dans un contrôle RadioButtonList, utilisez un groupe de contrôles HtmlInputRadioButton. Par exemple :
<input id="Radio01" type="radio" name="group1" Key="k1" runat="server" >
Pour contourner ce problème dans un contrôle DropDownList, utilisez le contrôle HtmlSelect. Par exemple :
<select runat="server">
<option value="v1" id="ID1" key="k1">1</option>
</select>

Statut

Microsoft a confirmé l'existence de ce bogue dans les produits Microsoft répertoriés dans la section "Liste des produits concernés par cet article".
Propriétés

ID d'article : 309338 - Dernière mise à jour : 22 oct. 2003 - Révision : 1

Commentaires