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]