Skip to Main Content

Java Development Tools

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

AF:Table column sort icon either ascending or descending

Abhijit DuttaJan 31 2014 — edited Jan 31 2014

Hi,

Jdeveloper 11.1.1.7 & ADF BC

My project requirement is :

In af:table we have default acceding and descending sorting icons are there . Our requirement is  by default we have to show

either acceding or descending icon in each column(Let say default acceding icon is showing). Now click on acceding icon

in any column, table data will sort as per acceding order and at the same time for that column acceding icon will toggle into descending

icon but rest of the column will shown only the acceding icon.So could you help how to fix this issue.

Jspx code :

<af:table value="#{bindings.result.collectionModel}" var="row"

rows="#{bindings.result.rangeSize}"

emptyText="#{bindings.result.viewable ? 'No data to display.' : 'Access Denied.'}"

fetchSize="#{bindings.result.rangeSize}"

rowBandingInterval="1" id="t1"

partialTriggers="::status ::casenumber ::priority "

width="100%" horizontalGridVisible="true"

styleClass="AFStretchWidth #{pageFlowScope.MyRecentCasesWidgetMBean.accendingcontrol}"

sortListener="#{MyRecentCasesWidgetMBean.onSort}"

binding="#{MyRecentCasesWidgetMBean.myRecentCasesTable}"

summary="My Recent Cases " columnStretching="last">

<af:column sortProperty="#{bindings.result.hints.status.name}"

sortable="true"

                         headerText="#{recentWidgetProp.statusLabel}" id="c1"

partialTriggers="::status ::showall"

binding="#{MyRecentCasesWidgetMBean.statusColumn}"

styleClass="tableHeader" width="97">

<af:outputText value="#{row.status}" id="ot8"/>

</af:column>

<af:column sortProperty="#{bindings.result.hints.caseNumber.name}"

sortable="true"

                         headerText="#{recentWidgetProp.caseNumLabel}" id="c2"

partialTriggers="::casenumber ::showall"

binding="#{MyRecentCasesWidgetMBean.caseNumber}"

width="133">

<af:commandLink text="#{row.caseNumber}" id="ot1"

styleClass="caseNumber" partialSubmit="true"

actionListener="#{MyRecentCasesWidgetMBean.setCaseNo}"

action="toViewCasePage">

<f:attribute name="name" value="#{row.caseNumber}"/>

</af:commandLink>

</af:column>

<af:column sortProperty="#{bindings.result.hints.priority.name}"

sortable="true"

headerText="#{recentWidgetProp.priorityLabel}" id="c3"

partialTriggers="::priority ::showall"

binding="#{MyRecentCasesWidgetMBean.colPriority}"

width="100">

<af:outputText value="#{row.priority}" id="ot8"

styleClass="priorityRed"

rendered="#{row.priority eq 'P1'}"/>

</af:column>

</af:table>

Java code :

    private String accendingcontrol = " defaultascendinghide  ";

    public void setAccendingcontrol(String accendingcontrol) {

this.accendingcontrol = accendingcontrol;

    }

    public String getAccendingcontrol() {

return accendingcontrol;

    }

    public void onSort(SortEvent sortEvent) {

List sortList = sortEvent.getSortCriteria();

SortCriterion sc = (SortCriterion)sortList.get(0);

SortCriterion sortCriteria = sortEvent.getSortCriteria().get(0);

System.out.println("You wanted to sort " + sc.getProperty());

        if (((String)sc.getProperty()).equalsIgnoreCase("status") &&

sortCriteria.isAscending()) {

this.myRecentCasesTable.setStyleClass("descendingblock  ");

this.myRecentCasesTable.setStyleClass("defaultascendinghide  ");

} else if(((String)sc.getProperty()).equalsIgnoreCase("status")) {

this.myRecentCasesTable.setStyleClass("descendinghide ");

}

        else if (((String)sc.getProperty()).equalsIgnoreCase("caseNumber") &&

sortCriteria.isAscending()) {

this.myRecentCasesTable.setStyleClass("descendingblock  ");

this.myRecentCasesTable.setStyleClass("defaultascendinghide  ");

} else if(((String)sc.getProperty()).equalsIgnoreCase("caseNumber")) {

this.myRecentCasesTable.setStyleClass("descendinghide ");

}

       

        else if (((String)sc.getProperty()).equalsIgnoreCase("priority") &&

sortCriteria.isAscending()) {

this.myRecentCasesTable.setStyleClass("descendingblock  ");

this.myRecentCasesTable.setStyleClass("defaultascendinghide  ");

} else if(((String)sc.getProperty()).equalsIgnoreCase("priority")) {

this.myRecentCasesTable.setStyleClass("descendinghide ");

}

}

portal-skin.css

.defaultascendinghide a[title*=Ascending]{display:none;}

.testblock a[title*=Ascending]{display:block;}

. descendinghide a[title*=Descending]{display:none;}

. descendingblock  a[title*=Descending]{display:block;}


~Abhijit

Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Feb 28 2014
Added on Jan 31 2014
1 comment
423 views