2015-01-13 1 views
0

안녕하세요 여러분, primefaces datatable에 관한 문제가 있습니다. 나는 대시 보드를 만들었는데, 사람들이 물건을 찾을 수있다. 따라서 데이터 테이블에는 데이터베이스의 일부 값이 표시됩니다. 모든 행에는 특별한 세부 사항을위한 버튼이 있습니다. 그래서이 버튼을 클릭하면 더 자세한 내용이있는 대화 상자 프레임이 열립니다. 데이터 테이블의 값 중 일부는 대화 상자에 표시되고 일부는 더 많이 표시됩니다. 그래서 이것은 잘 작동합니다. 이제 나는 필터가 대화 상자 프레임에서 내 값을 삭제한다는 것을 알았습니다. 필터 함수를 사용하면 내 값을 필터링하고 새 데이터 테이블을 업데이트 및 렌더링하며 버튼을 클릭하면 대화 상자 프레임의 값이 사라집니다. 왜?Primefaces가 데이터 테이블을 필터링 한 후 대화 상자에서 데이터를 잃습니다.

<h:form id="form1"> 
    <p:dataTable value="#{auftragBean.auftragsDaten}" var="auftrag" 
     rowKey="#{auftragBean.auftragsDaten}" selectionMode="single"> 

     <f:facet name="header"> 
      ... 
     </f:facet> 

     <p:column style="width:200px;text-align:center" 
      filterBy="#{auftrag.schadennummer}" headerText="Schadennummer" 
      filterMatchMode="contains"> 
       #{auftrag.schadennummer} 
      </p:column> 

     <p:column headerText="Auftragsbericht" style="text-align:center"> 
      <p:commandButton styleClass="viewbutton" icon="ui-icon-search" 
       style="border-left:1px solid #666; height:20px;font-size:10px;" 
       oncomplete="PF('dlg').show();" value="Open" 
       actionListener="#{auftragBean.initSelectedData(auftrag)}" 
       update="@widgetVar(dlg)" process="@this"></p:commandButton> 
     </p:column> 
    </p:dataTable> 




<p:dialog appendToBody="true" appendTo="@(body)" modal="true" 
     id="dialog" resizable="false" 
     header="Auftragsbericht &nbsp;&nbsp;-&nbsp;&nbsp; #{auftragBean.auftragsData.jobId}" 
     widgetVar="dlg" showEffect="drop" hideEffect="drop"> 
     <div style="max-height: 1000px; padding-right: 20px"> 

      <p 
       style="margin-top: 10px; color: black; font-size: 16px; padding-bottom: 0px; text-align: center;"> 
       <b>Bearbeitungsverlauf</b> 
      </p> 
      <div class="berichtTabelle"> 
       <h:form id="form2"> 
        <p:dataTable 
         style="width:1300px;margin:0 auto;margin-top:20px;overflow:hidden" 
         value="#{auftragBean.berichtsDaten}" var="bericht" 
         rowKey="#{bericht.tickerId}" selectionMode="single"> 

         <f:facet name="header"> 
          <p:outputPanel style="height:20px"> 
           <h:outputText value="Bearbeitungsverlauf" 
            style="float:left;font-size:14px;" /> 
          </p:outputPanel> 
         </f:facet> 

         <p:column style="text-align:center" headerText="Status"> 
          #{bericht.status} 
         </p:column> 

        </p:dataTable> 
       </h:form> 
      </div> 
     </div> 
    </p:dialog> </h:form> 

나는이 문제에 대해 봤지만 havent 해결책을 찾았습니다. 어쩌면 누군가가 도울 수 있습니까?

답변

2

dataTable을 필터링하는 경우 필터링 된 데이터를 나타내는 의 특성 인 filteredValue을 정의해야합니다. value 속성과 동일한 유형이어야합니다 (dataTable).

+0

감사합니다. 내 생명을 구했어. –

관련 문제