Salutations à tous,

je reviens vers vous suite à un souci face auquel je ne sais pas quoi faire.

Je crée des dropdownlist à l'aide de "selectlistitem" comme ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
for (int i = 0; i < Model.SuperList.Count; i++)
{
       if (Model.Id == Model.SuperList[i].id)
       {
           s.Add(new SelectListItem() { Text = Model.SuperList[i].toString(), Value = Model.SuperList[i].id.ToString(),Selected = true });
       }
       else
       {
           s.Add(new SelectListItem() { Text = Model.SuperList[i].toString(), Value = Model.SuperList[i].id.ToString() });
       }
}
<div class="ligneParam">
@Html.DropDownListFor(model => model.Id, s)
</div>
Le problème vient du " selected = true ", il est tout simplement pas pris en compte.
Lorsque je lance mon application, le Id de base est le numéro 1, est pour ce cas le selected = true fonctionne.
Ce que fireBug me retourne :
<select id="Id" name="Id"">
<option value="1" selected="selected">1 - web to web</option>
<option value="2">2 - web to web (Wap Download)</option>
<option value="3">3 - web to wap (Wap Download)</option>
<option value="4">4 - wap to wap</option>
</select>
Ensuite, lors d'un appuis sur bouton, dans le "controlleur", je change mon Id et le met égale à 3.
Théoriquement ma dropdownlist devrait se mettre sur la 3ième ligne, sauf qu'elle ne le fait pas. En regardant à nouveau fireBug, j'ai la même chose :
<select id="Id" name="Id"">
<option value="1" selected="selected">1 - web to web</option>
<option value="2">2 - web to web (Wap Download)</option>
<option value="3">3 - web to wap (Wap Download)</option>
<option value="4">4 - wap to wap</option>
</select>
Donc je suis perdu.

Après avoir fait quelques manipulations, voici ce qu'il en ressort:
- si l'Id est mis à 4 ( par exemple ) dans le constructeur par défaut de ma classe, la liste se met bien sur la bonne valeur.
- si c'est lors d'un submit, onchange ou autres actions qui recharge la page, quelque soit la valeur que je mets à partir du controlleur, il n'en tient pas compte.
En résumé, il se fit non à la valeur selected = true que moi je lui donne, mais à la ligne qui a été selectionnée à partir du navigateur.

Si quelqu'un aurait une idée de comment arranger cela, ça m'aiderait beaucoup.
Merci d'avance

.:AO:.