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