"RESTREPO, ALEXANDER G [Non-Pharmacia/1000]" wrote:

> Hi David:
>
> I want to be able to select an option in a dropdown
> since I am creating my dropdowns via the singleton model.
> Since, my select objects are populated from a database, the
> Singleton will eliminate unnecessary calls to the database.
> Therefore, I need to first create my select objects, and
> then select options in my dropdowns based on user interactions with
> my JSP's.
>

If you give each element a unique name you should be able to do
select.getElement("name").setSelected(true);  Easiest way to do this for
something you want to refer to by count is just do it in a loop doing something
like for(int x = 0 ; x < results.size();
x++) { select.addElement(Integer.toString(x),option); }
select.getElement("3").setSelected(true);

Hope that helps,
-stephan

>
> Thanks for your input:
>
> Alex Restrepo
>
> -----Original Message-----
> From: David Ethell [mailto:[EMAIL PROTECTED]]
> Sent: Monday, March 05, 2001 2:49 PM
> To: [EMAIL PROTECTED]
> Subject: RE: How do I Copy/Clone an "extended" Select Object????
>
> Robert wrote:
>
> > > QUESTION 1:
> > > I have created a select object with
> > > 4 options. How can I select the 3rd
> > > option by value?
> >
> >  public org.apache.ecs.html.Select selectOption(
> >                     org.apache.ecs.html.Select select,
> >                     String value)
> >   {
> >   if (value!=null && select!=null)
> >   {
> >    for (Enumeration en=select.elements();en.hasMoreElements();)
> >    {
> >     Object next=en.nextElement();
> >     if (next instanceof org.apache.ecs.html.Option)
> >     {
> >      org.apache.ecs.html.Option opt =(org.apache.ecs.html.Option) next;
> >      if (opt.getAttribute("value").equals(value))
> >      {
> >        opt.setSelected(true);
> >      } else {
> >       opt.setSelected(false);
> >      }
> >     }
> >    }
> >   }
> >   return select;
> >  }
>
> why do it in a complex loop like this? Why not set the selection as you
> build each option:
>
> Select mySelect = new Select("Test");
> Option option1               =  new Option("Option 1");
> Option option2               =  new Option("Option 2");
> Option option3               =  new Option("Option 3");
> Option option4               =  new Option("Option 4");
> option1.setSelected(value.equals("Option 1")?true:false);
> option2.setSelected(value.equals("Option 2")?true:false);
> option3.setSelected(value.equals("Option 3")?true:false);
> option4.setSelected(value.equals("Option 4")?true:false);
> ...
>
> Granted, that gets messy if you have a lot of options in your Select, but if
> that's the case why not do:
>
> Select mySelect = new Select("Test");
> for (int option_num = 1; option_num <= 4; option_num++) {
>   mySelect.addElement(new Option("Option " + option_num)
>     .addElement("HELLO " + option_num)
>     .setSelected(value.equals("Option " + option_num)?true:false)
>   );
> }
>
> Of course, your for loop will usually be some loop through a recordset from
> a database in which case you'll use some other mechanism for naming the
> options, but the principle is the same.
>
> David


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to