2014-10-01 1 views
2

다른 곳에서 나의 lazytable을 새로 고침하고 싶습니다. 나는 다음과 같은 XHTML이 있습니다Primefaces 다른 양식의 테이블을 업데이트하십시오.

<h:form id="tableform"> 
    <p:remoteCommand name="updateTable" update="table" /> 

    <p:dataTable widgetVar="tableWidget" id="table" 
     selection="#{personBean.selectedPerson}" selectionMode="single" 
     lazy="true" paginator="true" var="person" rowKey="#{person.id}" 
     value="#{personBean.personModel}" paginatorPosition="bottom" rows="5" 
     paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}">    

     <p:column filterBy="#{person.name}" headerText="Names:" 
      sortBy="#{person.name}"> 
      <h:outputText value="#{person.name}" /> 
     </p:column> 


    </p:dataTable> 

    <p:commandButton value="buttonInForm2" update=":tableform" /> 
    <p:commandButton value="buttonInForm" update="@form" /> 
</h:form> 

<h:form> 
    <p:commandButton value="directUpdate" update=":tableform" /> 
    <p:commandButton value="directUpdate" update=":tableform:table" /> 
    <p:commandButton value="remoteCommand" oncomplete="updateTable()" /> 
</h:form> 

remoteCommand (내 현재 솔루션)과 오른쪽 테이블을 새로 고침에서의 버튼. 하지만 "directUpdate"버튼을 사용하면 테이블의 filtertext가 사라집니다. 하지만 왜 이해가 안되니? (필터 값은 배경에 있지만 텍스트는 비어 있습니다.)

테이블에서 widgetVar.filter()를 사용할 수 있지만 페이징 담당자가 재설정된다는 것을 알고 있습니다. 내 솔루션 remoteCommand 모든 작동합니다 및 테이블 현재 페이지 및 필터를 다시로드합니다. (더 나은 솔루션을 환영합니다)

질문은 왜 형식으로 텍스트와 업데이 트가 직접 업데이 트를 업데이 트하지?

시간 내 주셔서 감사합니다.

답변

1

<p:dataTable>은 서버 측이 클라이언트 측 상태를 알 수 있도록 다른 페이지 매김, 선택 및 필터링에 대한 자체 숨겨진 입력을가집니다. 이렇게하면 클라이언트 측에서와 동일한 상태를 준비하고 반환 할 수 있습니다.

특정 양식을 제출하면 특정 양식에 포함 된 입력 사항 만 보내고 다른 양식에는 입력되지 않습니다. 이것은 JSF 특정 문제가 아닙니다. HTML은 항상 그런 식으로 일했습니다. 월드 와이드 웹은 달리 다르게 보였을 것입니다.

양식 외부에서 <p:remoteCommand>을 호출하면 기본적으로 "올바른"양식 즉 데이터 테이블을 포함하는 양식이 제출됩니다.

그 자체로는 <p:commandButton>이 필요하지 않습니다. 단지 <p:button ... onclick="updateTable(); return false;">으로 충분합니다. 전체 두 번째 양식조차도 작업에 불필요합니다.

+0

숨겨진 입력에 대해 설명해 주셔서 감사합니다. 예, 두 번째 형식은 내 큰 예일뿐입니다.하지만이 경우에는 필요하지 않습니다. 고마워요 :) – pL4Gu33

+0

당신은 오신 것을 환영합니다. – BalusC