J'ai une liste déroulante qui est remplie via un service web en utilisant ASP> NET AJAX. Sur le rappel de succès de la méthode en javascript, je peuplant le menu déroulant via une boucle:Mise à jour de viewstate après le remplissage d'une liste avec ASP.NET AJAX
function populateDropDown(dropdownId, list, enable, showCount) {
var dropdown = $get(dropdownId);
dropdown.options.length = 1;
for (var i = 0; i < list.length; i++) {
var opt = document.createElement("option");
if (showCount) {
opt.text = list[i].Name + ' (' + list[i].ChildCount + ')';
} else {
opt.text = list[i].Name;
}
opt.value = list[i].Name;
dropdown.options.add(opt);
}
dropdown.disabled = !enable;
}
Cependant lorsque je soumets la forme que ce contrôle est activé, la liste de contrôle est toujours vide sur postback. Comment faire pour que les données des listes remplies persistent pendant la publication?
Éditer: Peut-être que je viens à ce retour. Une meilleure question serait probablement, comment puis-je remplir une liste déroulante à partir d'un webservice sans avoir à utiliser un panneau de mise à jour en raison du cycle de vie complet de la page qu'il doit parcourir?
Oui, j'aimerais pouvoir utiliser MVC! Je suis allé avec l'option de champ caché, en utilisant Page.ClientScript.RegisterHiddenField pour le configurer. J'ai créé une classe qui hérite de Dropdownlist qui remplace la SelectedValue pour charger à partir de Request.Form –