如何在 Oracle JDeveloper 12.2.1.0.0 中重置搜索选项

问题描述 投票:0回答:1

这样的问题,我在Oracle JDeveloper中工作,版本12.2.1.0.0 我已经在所有数据库表中实现了全局搜索。有搜索字段,即搜索选项。当我通过参数进行搜索查询时,记录会返回给我 - 一切都很好。当我按某些字段对这些记录进行排序并单击重置搜索参数时,为什么查询无法正常工作,它不仅清除搜索参数,还显示所有表中的所有记录。如何修复它?我的重置方法的代码如下所示。

Bean类:

public void gsearchQueryOperationListener(QueryOperationEvent queryOperationEvent){
    if(queryOperationEvent.getOperation().name().toUpperCase().equals("RESET")){
        ViewObject object = ADFUtils.findIterator("GeneralSearchV1Iterator").getViewObject();
        object.executeEmptyRowSet();
        oracle.jbo.ViewCriteria criteria = ADFUtils.findIterator("GeneralSearchV1Iterator").getViewCriteria();
        object.applyViewCriteria(criteria);
        result = false;
    }
}

.jsff 类

<af:panelGroupLayout id="pgl1">
        <!--<af:panelHeader text="Global search" id="ph1"/>-->
        <af:query id="gsearchQ" headerText="Global search" disclosed="true"
                  value="#{bindings.GeneralSearchVCriteriaQuery.queryDescriptor}"
                  model="#{bindings.GeneralSearchVCriteriaQuery.queryModel}"
                  queryListener="#{pageFlowScope.GSearchBean.gsearchQueryListener}"
                  queryOperationListener="#{pageFlowScope.GSearchBean.gsearchQueryOperationListener}"
                  partialTriggers="::t1:c4 ::t1:c18 ::t1"
                  saveQueryMode="hidden" maxColumns="2" rows="3" modeChangeVisible="false" resultComponentId="::t1"/>
                  <!--queryListener="#{pageFlowScope.GSearchBean.gsearchQueryListener}"-->
                  <!--queryOperationListener="#{pageFlowScope.GSearchBean.gsearchQueryOperationListener}"-->
        <af:table value="#{bindings.GeneralSearchV1.collectionModel}" var="row"
                  rows="#{bindings.GeneralSearchV1.rangeSize}" fetchSize="#{bindings.GeneralSearchV1.rangeSize}"
                  emptyText="" id="t1"
                  autoHeightRows="10" rowBandingInterval="0" styleClass="AFStretchWidth" columnStretching="last"
                  disableColumnReordering="true" scrollPolicy="page">

我尝试以某种方式修复它,但没有成功。这是我尝试过的代码

    public void gsearchQueryOperationListener(QueryOperationEvent queryOperationEvent){
            if(queryOperationEvent.getOperation().name().toUpperCase().equals("RESET")){
                       
                log.info("STEP 1:");

            ViewObject object = ADFUtils.findIterator("GeneralSearchV1Iterator").getViewObject();
                       
                       RichQuery queryComp1 = (RichQuery) UIComponentUtil.findComponent("gsearchQ");
                       log.info("queryComp1.getAttributeChangeListeners(); "+queryComp1.getAttributeChangeListeners());
                       queryComp1.setValue(null);
                       
                       RichTable queryComp2 = (RichTable) UIComponentUtil.findComponent("t1");
                       log.info("queryComp2.getAttributeChangeListeners(); "+queryComp2.getAttributeChangeListeners());
                       log.info("queryComp2.getSelectedRowKeys(); "+queryComp2.getSelectedRowKeys());
                       queryComp2.getSelectedRowKeys().clear(); 
                               queryComp2.setSelectedRowKeys(null); 
                               queryComp2.setValue(null);
                               
                     
                       queryComp2.getSelectedRowKeys().clear(); 
                       queryComp2.setSelectedRowKeys(null); 

                       AdfFacesContext.getCurrentInstance().addPartialTarget(queryComp2); 

                        object.setOrderByClause(null);
                       object.setSortBy(null);
                       
            object.executeEmptyRowSet();

           oracle.jbo.ViewCriteria criteria = ADFUtils.findIterator("GeneralSearchV1Iterator").getViewCriteria();
           object.applyViewCriteria(criteria);          
            result = false;
                   }
java oracle jdeveloper
1个回答
0
投票

查看这篇博文https://www.jobinesh.com/2011/04/programmatically-resetting-and-search.html 这对我使用 JDev 12.2.1.4 有效

© www.soinside.com 2019 - 2024. All rights reserved.