2013-01-04 3 views
0

내 JSF의 두 가지 주요 구성 요소가 P 야를 재설정 방지한다.필터 테이블 값

JSF :

<h:panelGrid columns="2" style="width: 100%" columnClasses="treeColumn,tableColumn"> 
     <h:panelGroup id="treePanel"> 
      <p:tree id="tree" 
        value="#{genRepBean.root}" 
        var="node" 
        dynamic="true" 
        cache="true" 
        animate="true" 
        selectionMode="single" 
        selection="#{genRepBean.selectedNode}" 
        rendered="#{genRepBean.renderTree}"> 
       <p:ajax event="select" listener="#{genRepBean.onNodeSelect}" update=":mainForm:tablePanel"/> 
       <p:treeNode expandedIcon="ui-icon-folder-open" 
          collapsedIcon="ui-icon-folder-collapsed"> 
        <h:outputText value="#{node.name}" styleClass="tableTreeText"/> 
       </p:treeNode> 
       <p:treeNode type="au" icon="ui-icon-document"> 
        <h:outputText value="#{node.name}" /> 
       </p:treeNode> 
      </p:tree> 
     </h:panelGroup> 
     <h:panelGroup id="tablePanel"> 
      <p:dataTable id="acqDataTable" 
         var="acq" 
         value="#{genRepBean.acqList}" 
         rendered="#{genRepBean.renderTable}" 
         filteredValue="#{genRepBean.filteredAcqList}" 
         paginator="true" 
         paginatorPosition="bottom" 
         paginatorTemplate="{RowsPerPageDropdown} {FirstPageLink} {PreviousPageLink} {CurrentPageReport} {NextPageLink} {LastPageLink}" 
         rowsPerPageTemplate="5,10,15" 
         rows="10" 
         lazy="false" 
         style="width: 100%"> 
       <p:column headerText="ID" sortBy="#{acq.Id}" styleClass="tableTreeText"> 
        <h:outputText value="#{acq.Id}" /> 
       </p:column> 
       <p:column headerText="IP ADDRESS" sortBy="#{acq.ipAddress}" styleClass="tableTreeText"> 
        <h:outputText value="#{acq.ipAddress}"/> 
       </p:column> 
       <p:column headerText="STEP" sortBy="#{acq.Step}" filterBy="#{acq.Step}" filterMatchMode="contains" styleClass="tableTreeText"> 
        <h:outputText value="#{acq.Step}"/> 
       </p:column> 
       <p:column headerText="STATUS" sortBy="#{acq.status}" filterBy="#{acq.status}" styleClass="tableTreeText"> 
        <h:outputText value="#{acq.status}"/> 
       </p:column> 
      </p:dataTable> 

빈 (bean) (onNodeSelect) :

public void onNodeSelect() { 
acqList.clear(); 
    this.acqList = AcqHelper.getAllViaStartDate(new java.sql.Date(startDate.getTime())); 
    if (!acqList.isEmpty()) { 
     DataTable dataTable = (DataTable) FacesContext.getCurrentInstance().getViewRoot().findComponent("mainForm:acqDataTable"); 
     dataTable.reset(); 
     renderTable = true; 
    } 

나는 클라이언트에 매우 사용할 수 있기 때문에 필터 옵션을 제거하지 않습니다하지만 난 그 이유를 모른다 그 테이블 새로 고침을 차단 ??

어떤 도움 당신은 DataTable을 모델로의 변경을 수행 할 필요가 없습니다

감사

+0

감사합니다 :) - clearFilters() working great – angus

+0

그냥 대답 으로이 스레드를 넣어, 답변으로 게시물을 표시하는 것을 잊지 마세요. –

답변

0

좋은 것입니다. Primefaces는 데이터를 #{genRepBean.acqList}에서 가져옵니다. 해당 목록에서 적절한 값을 설정하고 #{genRepBean.filteredAcqList} 목록을 재설정하십시오. 요청이 완료되면 데이터 테이블이 새 값으로 새로 고쳐집니다.