2013-04-25 7 views
0

primefaces에서 datatable을 어떻게 업데이트 할 수 있습니까? 페이지를 새로 고칠 때만 업데이트 할 수 있습니다. 몇 가지 해결책을 찾았지만 어느 것도 나를 위해 일하지 않았습니다. 예를 들어 ": companyForm : companyPanel"업데이트를 변경하면 버튼이 사라집니다. 나는 콜론을 제거하고 이제 버튼을 볼 수 있지만 여전히 데이터 테이블을 업데이트하지 않습니다. 여기 내 jsf 페이지입니다.primefaces 데이터 테이블을 업데이트하는 방법

<h:form id="companyForm" prependId="false"> 
    <p:panel id="companyPanel"> 
    <p:dataTable id="companyListTable"> 
    //columns 
    </p:dataTable> 
    </p:panel> 

<p:outputPanel id="newDatePanel"> 
    <p:commandButton value="Save"           
    update="companyForm:companyPanel 
    companyForm:newDatePanel"           
    action="#{myController.save()}"/> 
</p:outputPanel> 
</form> 

및 스프링 컨트롤러;

init(){ 
    companyList = service.getAllCompany(); 
} 

public void save(){ 
    service.save(company); 
} 
+0

관리 대상 빈의 범위는 무엇입니까? –

+0

prependId = "false"로 설정 한 후 업데이트에서 양식 ID를 지정하지 않으면 다음과 같아야합니다. update = ": companyListTable" –

+0

"콜론이 제거되었으므로 이제 작동합니다" –

답변

2

실제로 id는 엉망입니다. 그렇지 않으면 구성 요소가 새로 고쳐집니다.

구성 요소의 실제 클라이언트 ID는 태그가 들어있는 명명 컨테이너에 따라 달라집니다.이 경우 명명 컨테이너는 <h:form>입니다. 양식 태그에 prependId="false" 속성을 포함 시켰기 때문에 내포 된 <p:panel id="companyPanel">의 클라이언트 ID는 companyPanel이 될 것이며 그렇지 않으면 (prependId을 생략했을 경우) companyForm:companyPanel이됩니다. 같은 명명 컨테이너 내에서 구성 요소 를 업데이트 (양식)를 원하는

하지만, 폼 아이디로 접두사와 단순히 <p:commandButton update="companyPanel"> 할 수 있도록 할 필요가 없습니다 : 콜론없이 형태 아이디없이, 수 거기에.

코드가 현재 상태 인 경우 ID가 companyForm:companyPanel 인 구성 요소가 없습니다.

+0

덕분에 지금 작동합니다. –

+0

오신 것을 환영합니다! – skuntsel

관련 문제