SelectionList et valeurs d'index
Le contrôle mobile ASP.NET SelectionList émet un langage de balisage le plus concis possible vers le navigateur client. Le plus souvent, ASP.NET n'envoie pas au client le contenu de la propriété Value de l'élément. Il envoie plutôt un numéro d'index de base zéro correspondant à l'élément.
Par exemple, supposons qu'un contrôle SelectionList contient des éléments avec les paramètres de texte et de valeur répertoriés dans le tableau suivant.
Texte de l'élément | Valeur de l'élément |
---|---|
Rain |
"A rainy string" |
Snow |
"A snowy string" |
Sun |
"A sunny string" |
Wind |
"A windy string" |
Une partie du balisage rendu par le contrôle ressemble aux lignes ci-dessous :
<Select Name = " WeatherSelectionList">
<Option Value = "0">Rain</Option>
<Option Value = "1">Snow</Option>
<Option Value = "2">Sun</Option>
<Option Value = "3">Wind</Option>
<Select>
Lorsque l'utilisateur choisit un élément dans la liste et que le navigateur publie le formulaire sur le serveur, le client envoie le numéro d'index de l'élément sélectionné. Si l'utilisateur sélectionne Snow, le client envoie le numéro 1 au serveur.
Dans la mesure où les chaînes contenues dans les propriétés Value des éléments ne sont pas passées entre le client et le serveur, la communication est plus efficace. Cette technique est particulièrement utile pour les canaux sans fil disposant d'une bande passante restreinte.
Il arrive que le client ne publie pas l'entrée de l'utilisateur sur la même page. Cela se produit lorsque la propriété Action du contrôle Form contenant le contrôle SelectionList a la valeur de l'URL d'une autre page. Dans ce cas, le contrôle SelectionList ne tente pas d'optimiser sa sortie. Au lieu d'envoyer des numéros d'index au client, il envoie les chaînes réelles contenues dans la propriété Value de chaque élément.