I have a VF page in which Im displaying set of records in pageblocktable.

There is a dropdown List (Sort By) with values. Name, Program and a commandButton named 'Reverse Order'. So, when I select Name in the dropdown list, the pageblock table should sort By Name, similarly with Program duration. And when I click reverse order button, the order should change.

The reverse order button is working fine. The onchange of SelectList is not working. Below is my code.

VF Page

Sort By                                          
<apex:selectList value="{!sortExpression}" multiselect="false" size="1" onchange="doSearch();return false;" title="Sort By">
       <apex:selectOptions value="{!SortBy}"/>                                                

<apex:commandLink action="{!reverseOrder}" value=" Reverse Order" reRender="pb" status="waitMsg" />    

<apex:actionFunction name="doSearch" action="{!searchStudentsList}" status="waitMsg" reRender="pb"/>

Apex class

public string sortExpression{get;set;}
public string sortDirection{get;set;}

public void ReverseOrder(){     
      sortDirection = (sortDirection =='DESC')? 'ASC' : 'DESC';//changes order by direction
      searchStudentsList();//calls search method

public void searchStudentsList(){
   //I use dynamic soql query using sortExpression and sortDirection in the query.

public ClassName{
In the constructor
    // Initializing stuff...
    SortBy = new list<SelectOption>();
    SortBy.add(new SelectOption('Name', 'Name'));
    SortBy.add( new SelectOption('Program__c', 'Program'));

    sortExpression = 'Name';
    sortDirection = 'ASC';
  • 2
    I suggest you narrow down the problem area by using the techniques in How do I start to debug my own Visualforce/JavaScript?. – Keith C Jun 9 '14 at 10:28
  • "pb" is definitely the Id of an outer element? – Ray Dehler Jun 9 '14 at 16:18
  • well just to confirm do you have any required feel in the page (doesn't look like you have else reverse order shouldn't be working). and does the actionstatus fire ? – Avidev9 Jun 9 '14 at 16:38
  • @RayDehler yes, pb is the outer element. – sfdcFanBoy Jun 9 '14 at 23:40
  • @Avidev9 I do not have any required fields. hmm I need to verify if the "onchange" of the selectList is working or not. how? – sfdcFanBoy Jun 9 '14 at 23:42

Crazy. The picklist value sorting will be based on how it is setup at the Field level irrespective of what we code. Just read in Salesforce notes.

So, all I had to do was sort the picklist value in Alhabetical order at Field level. All ok now !!

  • 1
    please mark as an answer so others will know the issue is resolved – cropredy Aug 10 '14 at 5:48
  • Yes, I couldn't mark it as solved immediately. I had to wait for a day to do it as per the rules. And I forgot the next day. Thanks for the reminder though. Cheers! – sfdcFanBoy Aug 21 '14 at 7:26

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.