2010-03-21 4 views
3

J'utilise classique ASP, j'ai une liste déroulante que l'utilisateur sélectionne, puis appuie sur soumettre. Après avoir appuyé sur Envoyer, la liste déroulante revient à la valeur par défaut au lieu de ce qu'ils ont sélectionné. Y at-il de toute façon de garder l'état de la liste déroulante entre les publications au lieu de revenir à la valeur par défaut? Peut poster un échantillon de code si nécessaire. Merci!déroulant ne pas conserver la valeur sélectionnée après la publication

Répondre

10

Vous devez le "sélectionner" côté serveur en fonction des valeurs que l'utilisateur a POSTé.

<select id="cars"> 
    <option value="volvo" 
     <% 
     if request.form("cars") = "volvo" then 
      response.write("selected") 
     end if %> 
     >Volvo</option> 
    <option value="Saab" 
     <% 
     if request.form("cars") = "Saab" then 
      response.write("selected") 
     end if %> 
     >Saab</option> 
    <option value="Mercedes" 
     <% 
     if request.form("cars") = "Mercedes" then 
      response.write("selected") 
     end if %> 
     >Mercedes</option> 
    <option value="Audi" <% 
     if request.form("cars") = "Audi" then 
      response.write("selected") 
     end if %> 
     >Audi</option> 
</select> 

Bien sûr, vous voudrez peut-être Homegrown votre propre fonction pour éviter tout ce qui passe-partout.

<% 
sub option(value, data, select_id) 
    Response.Write("<option value=""" & value & """) 
    if request.form(select_id) = value then 
     Response.Write("selected") 
    end if 
    Response.Write(">" & data & "</option>") 
end sub 
%> 
' (...) 
<select id="cars"> 
    <% option("volvo", "Volvo", "cars") %> 
    <% option("Saab", "Saab", "cars") %> 
    <% option("Mercedes", "Mercedes", "cars") %> 
    <% option("Audi", "Audi", "cars") %> 
</select> 

Si vous passez la fonction d'un vide select_id, il ne se préoccuperont pas d'essayer de sélectionner l'élément sélectionné de la select sur postback.

+0

J'ai utilisé cette fonction et c'était exactement ce dont j'avais besoin pour travailler parfaitement! Je vous remercie!! – Bmw

+1

@Bmw: souvenez-vous de l'adapter à vos besoins, car il y a peut-être des choses que je n'ai pas prises en compte (comme par exemple, si vous utilisez GET au lieu de POST) pour être bref. Content que cela ait aidé. – voyager

0

Vous pouvez utiliser javascript et HTML brut pour y parvenir: HTML: créer un champ caché

Javascript: Sur soumettre conserver la valeur sélectionnée dans la variable cachée

la page charge en boucle à travers le déroulant des valeurs et définissez la valeur sélectionnée en utilisant la variable cachée

Une variante plus est disponible dans http://www.daniweb.com/forums/thread105485.html

+0

puis-je savoir pourquoi cela a été downvoted et sans aucune raison expliquée? – balalakshmi

+1

Je ne l'ai pas déprécié, mais peut-être parce que cela complique inutilement les choses en exigeant javascript, quand le problème OP nécessite seulement une solution côté serveur pour prendre en compte les valeurs affichées de 'select'. – voyager

+0

@voyager merci de clarifier. ça va m'aider la prochaine fois – balalakshmi

Questions connexes