Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations SkipVought on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

af:selectOneChoice - setting default selected value other than first

Status
Not open for further replies.

DairylandDan

Programmer
Apr 3, 2008
17
0
0
US
Hmmm, I'm stuck and would appreciate any help available (bet you've never read that on here before - LOL).

I'm building a dynamically populated af:selectonechoice and it works almost exactly as I'd like it. I'm grabbing distinct years from our database for those records which are active via a query in a sessionfacadebean - this query simply orders them in decending order (for example: 2011, 2010, 2009, 2008). But, my problem is that I can only get the page to load with the selectonechoice defaulted to the first year in the list.

Here's the code as it sits now . . .
jspx page:

Code:
<!-- Dynamic selectOneChoice of only available years from vHolidayDisplayFlag -->                           
<af:selectOneChoice value="0" autoSubmit="true" required="false"
                    id="selectOneChoiceYears" label="Year"
                    binding="#{backing_reports_calholiday.selectOneChoiceYears}"
                    valueChangeListener="#{backing_reports_calholiday.valueChangeListenerYear}">
 <f:selectItems id="selectItemsYears" binding="#{backing_reports_calholiday.selectItemsYears}" value="#{backing_reports_calholiday.availableYears}"/>
</af:selectOneChoice>
<!-- End of Dynamic selectOneChoice of only available years from vHolidayDisplayFlag -->

and here's the code from the backing bean:

Code:
 // get Available Years
 // This is designed to populate the selectOneChoice list with ONLY those years which are available in V_Holiday_Display_Flag
 public List<SelectItem> getAvailableYears() {
  Calendar cal = new GregorianCalendar();
  Integer currentyear = cal.get(Calendar.YEAR);
  int counter = 0;
  int holder = 0;

  OperationBinding operationBinding = getBindings().getOperationBinding("queryVHolidayScheduleByYearsAvailable");
  List<Long> years =  (List<Long>)operationBinding.execute();          
  Vector<SelectItem> listYears = new Vector<SelectItem>();

  for(Long year : years) {
   listYears.add(new SelectItem(Integer.toString(counter), year.toString()));
   if(year.equals(currentyear)){
    selectOneChoiceYears.setSubmittedValue(Integer.toString(counter)); // trying this?
    selectOneChoiceYears.setValue(Integer.toString(counter)); // trying this?
   }
   counter++;
  }

  return listYears;
 }

I've tried any and all manner of voodoo and code permutations, but, obviously, I'm missing the obvious somewhere. The selectoncechoice ALWAYS defaults to whatever the first year in the resultset is - and, of course, we want the years in order. But, we'd like the page to load with the current year selected by default.

So, the list may be:
2010
2009
2008

We'd like 2009 to be the default selected, not 2010 - which is what's being selected now (since it's first in the list).

* I've tried setting a value of "holder" in the backing bean when I'm working with the current year, and then reference that in the jspx page with the "value" element of the af:selectOneChoice - like this --> value="#{backing_reports_calholiday.holder}" . . . but, that didn't work.
* I can, of course, hard code the "value" element of the af:selectOneChoice when I "know" what the placement of the current year is in my result set . . . but, obviously, that's not the solution.

Hmmm (Image of me scratching my chin thoughtfully)

Any and all help would be greatly appreciated.



dLd
 
Sorry, I wasn't sure where it belonged. This one can be deleted then.

d
 
Neither I'm sure actually :)

But if you post in several forums, post a reference or a link to the other threads so people don't give the same answer twice

Cheers,
Dian
 
'Diancecht',

How do I "post a reference or a link to the other thread"?


dld
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top