Saturday, March 5, 2016

Default Filter Value in af:table Filter

When we Enable Sorting and Filtering and need to Default value in Filter for First or each time ,
create bean with table handle

public class MyBean {
    public MyBean() {
    }
public FilterableQueryDescriptor getCustomQueryDescriptor() {
        String bindingEl = "#{bindings.MyVO1Query}";

        FacesCtrlSearchBinding sbinding =
            (FacesCtrlSearchBinding)JSFUtil.resolveExpression(bindingEl);
        FilterableQueryDescriptor fqd =
            (FilterableQueryDescriptor)sbinding.getQueryDescriptor();
        if (fqd != null &&
            fqd.getConjunctionCriterion() != null  && isInitialQuery()) {
            ConjunctionCriterion cc = fqd.getConjunctionCriterion();
            List<Criterion> lc = cc.getCriterionList();
            for (Criterion c : lc) {
                if (c instanceof AttributeCriterion) {
                    AttributeCriterion ac = (AttributeCriterion)c;
                    if ((ac.getAttribute().getName().equalsIgnoreCase("Status")) &&
                        ac.getValues().isEmpty()) { 
                        Map filterCriteria = fqd.getFilterCriteria();
                        if (filterCriteria == null) {
                            filterCriteria = new HashMap<String, Object>();
                            fqd.setFilterCriteria(filterCriteria);
                        }
                        filterCriteria.put("Status", "PENDING");
                    }
                }
            }
            setInitialQuery(false);
            RichTable tbl = getMyTable();
            QueryEvent queryEvent = new QueryEvent(tbl, fqd);
            sbinding.processQuery(queryEvent);
        }
        return fqd;
    }

}

Change af:table property
filterModel="#{pageFlowScope.MyBean.customQueryDescriptor}"

References
http://lucbors.blogspot.com/2015/08/adf-1213-implementing-default-table.html
https://community.oracle.com/thread/2232873?tstart=0
http://www.awasthiashish.com/2013/11/apply-filter-on-aftable-column.html

2 comments:

  1. Nice post to get default value in filter in different condition.It's an useful topic ,I have some information on oracle R12 if you have more what i have share it with us.
    Thank you.
    oracle R12 training

    ReplyDelete
  2. the above mentioned code is working i have used it in my oracle project. thank you for sharing.

    from

    Oracle Fusion HCM Training

    ReplyDelete