ASP.NET - Objet SortedList

L'objet SortedList possède les caractéristiques des objets ArrayList et Hashtable.

Objet SortedList

L'objet SortedList contient des éléments représentés par des paires clé/valeur. L'objet SortedList peut trier automatiquement les éléments en ordre alphabétique ou numérique.

Ajoutez des éléments à la SortedList en utilisant la méthode Add(). La SortedList peut être ajustée à la taille finale en utilisant la méthode TrimToSize().

Le code suivant crée une SortedList nommée mycountries et ajoute quatre éléments :

<script runat="server">
sous Page_Load
si Not Page.IsPostBack alors
  dim mycountries=New SortedList
  mycountries.Add("C","Chine")
  mycountries.Add("S","Suède")
  mycountries.Add("F","France")
  mycountries.Add("I","Italie")
fin si
fin sous-programme
</script>

Liage de données

L'objet SortedList peut générer automatiquement le texte et les valeurs pour les contrôles suivants :

  • asp:RadioButtonList
  • asp:CheckBoxList
  • asp:DropDownList
  • asp:Listbox

Pour lier des données au contrôle RadioButtonList, créez d'abord un contrôle RadioButtonList dans le fichier aspx (sans aucun élément asp:ListItem) :

<html>
<body>
<form runat="server">
<asp:RadioButtonList id="rb" runat="server" AutoPostBack="True" />
</form>
</body>
</html>

Puis ajoutez le script de construction de la liste :

<script runat="server">
sous Page_Load
si Not Page.IsPostBack alors
  dim mycountries=New SortedList
  mycountries.Add("C","Chine")
  mycountries.Add("S","Suède")
  mycountries.Add("F","France")
  mycountries.Add("I","Italie")
  rb.DataSource=mycountries
  rb.DataValueField="Key"
  rb.DataTextField="Value"
  rb.DataBind()
fin si
fin sous-programme
</script>
<html>
<body>
<form runat="server">
<asp:RadioButtonList id="rb" runat="server" AutoPostBack="True" />
</form>
</body>
</html>

Ensuite, nous ajoutons une subroutine qui sera exécutée lorsque l'utilisateur cliquera sur un élément du contrôle RadioButtonList. Lorsque le bouton radio est cliqué, le texte apparaîtra dans le label :

<script runat="server">
sous Page_Load
si Not Page.IsPostBack alors
  dim mycountries=New SortedList
  mycountries.Add("C","Chine")
  mycountries.Add("S","Suède")
  mycountries.Add("F","France")
  mycountries.Add("I","Italie")
  rb.DataSource=mycountries
  rb.DataValueField="Key"
  rb.DataTextField="Value"
  rb.DataBind()
fin si
fin sous-programme
sous displayMessage(s as Object,e As EventArgs)
lbl1.text="Votre pays préféré est: " & rb.SelectedItem.Text
fin sous-programme
</script>
<html>
<body>
<form runat="server">
<asp:RadioButtonList id="rb" runat="server"
AutoPostBack="True" onSelectedIndexChanged="displayMessage" />
<p><asp:label id="lbl1" runat="server" /></p>
</form>
</body>
</html>

Afficher cet exemple