2009-04-23 6 views
0

J'ai une base de données textbox conduit qui doit être repeuplée lorsque l'utilisateur touche le bouton de retour (un bouton de retour que j'ai créé sur le formulaire)base de données Repeupler textbox axée sur la forme

Actuellement, je suis en mesure de repeupler champs non basés sur la base de données sur le formulaire en utilisant des sessions http très bien. Je n'arrive pas à appliquer la même logique aux champs pilotés par la base de données.

Le code sur mon jsp se présente comme suit:

<td><select name = "actionType" tabindex = "1" value="<%if(session.getAttribute("actionType")== null) out.print(""); else out.print(session.getAttribute("actionType"));%>"> 
     <option>--</option> 

     <% for(int i=0; i<actTypeDDL.size()-1; i++){  
      String actType = actTypeDDL.get(i).toString(); 
      i++; 
      String actTypeVal = actTypeDDL.get(i).toString();%> 

      <option value=<%=actTypeVal%>> 
      <%=actType%> 
      </option> 
      <% 
      } %> 
     </select></td> 

Toutes les idées?

Répondre

1

Le problème n'a rien à voir avec le fait que la valeur provient de la base de données, le problème est que la spécification d'une valeur sur une étiquette de sélection ne présélectionnera pas l'option. Vous devez ajouter un indicateur "selected" à l'option elle-même.

Ce qui suit devrait fonctionner:

<td><select name = "actionType" tabindex = "1" > 
    <option>--</option> 

    <% for(int i=0; i<actTypeDDL.size()-1; i++){  
      String actType = actTypeDDL.get(i).toString(); 
      i++; 
      String actTypeVal = actTypeDDL.get(i).toString();%> 

      <option value=<%=actTypeVal%> 
      <% if (session.getAttribute("actionType") == actTypeVal) { 
       System.out.println("selected = 'true'"); 
      } %> 
      > 
      <%=actType%> 
      </option> 
      <% 
      } %> 
    </select></td> 
+0

Intéressant. Où la valeur devient-elle définie de la zone de texte? En d'autres termes, quelle ligne de votre code renvoie réellement les données sélectionnées par l'utilisateur (après avoir appuyé sur le bouton de retour)? –

+0

Je ne suis pas sûr de comprendre - votre exemple n'a pas de zone de texte, seulement une liste déroulante. La valeur serait soumise à nouveau de la même manière que la première fois - par la valeur de la boîte de sélection (définie par l'index sélectionné) en POST à ​​la destination. –

Questions connexes