2012-08-16 5 views
2

PrimeFaces 및 Mojara의 알려진 버그 일 수있는 중첩 된 UI 구성 요소에 문제가 있습니다. 그러나 나는 어떻게 그것을 해결할 수 있는지 전혀 모른다.Primefaces DataGrid - CommandLink가 작동하지 않습니다.

그래서, 우리는 업 로더와 이미지 갤러리를 가지고 있고이 데이터 그리드에서 이미지를 삭제할 수 있도록하려면

XHTML 다음 momment에서 작동하지 않는 것을

기본적으로
<h:form enctype="multipart/form-data"> 

      <p:fileUpload fileUploadListener="#{pictureManagementBean.handleFileUpload}" 
        mode="advanced" 
        update="gallery messages" 
        auto="true"      
        allowTypes="/(\.|\/)(gif|jpe?g|png)$/" 
        /> 

      <p:growl id="messages" showDetail="true"/> 

      <p:dataGrid var="item" value="#{pictureManagementBean.pictures}" id="gallery"> 
       <p:panel header="#{item.pictureName}" style="text-align:center"> 
        <h:panelGrid columns="1" style="width:100%"> 

         <p:graphicImage value="#{item.thumbnailDir}" />        
         <h:outputText value="#{item.createdate.toString()}" />       
         <p:commandLink value="Delete" 
             action="#{pictureManagementBean.removePicture(item.idpicture)}" ajax="false"/> 

        </h:panelGrid> 
       </p:panel> 
      </p:dataGrid> 

     </h:form> 

- 모든 - DataGrid에서 commandLink Delete입니다. 나머지는 괜찮습니다.

여기에 대한 해결책이 있습니까? 나는 시도했다 : 컬럼, 아약스, 아니 아약스 ... 아무것도 작동하지 않는다. 내가 할 수있는 것은 DataGrid 외부에있는 버튼을 얻는 것뿐입니다. 하지만 그건 내가 원하는 것만은 아니다.

감사합니다.

[작은 것 : 놀랍게도 나는 문제없이 DataTable과 Columns에서 commandLink를 사용했습니다! ]

mime에서 3.4RC1. (중 3.3.1에 didnt 한 일) 확인

그래서 한 가지를 발견했습니다 <p:dataGrid> 내부에 아무것도하지만 페이지를 사용하는 경우 : 열이 작동하지 않습니다. 하지만보기가 끔찍한 데 ... CSS를 사용하여 수정해야합니까?

+0

'PictureManagementBean'은 뷰 범위가 맞습니까? – BalusC

+0

정확히 commandLink에서 작동하지 않는 것은 무엇입니까? 만약 아무것도 없다면 명시 적으로'dataGrid'를 업데이트하십시오. – Paranaix

+3

doc에 대한 간략한 설명은'p : panel'이'p : column' 안에 위치해야 함을 나타냅니다 – Paranaix

답변

3

@Maple_shaft 당신이 옳습니다!

올바른 코드 :

<p:dataGrid var="item" value="#{pictureManagementBean.pictures}" id="gallery"> 
       <p:column> 
        <p:panel header="#{item.pictureName}" style="text-align:center"> 
        <h:panelGrid columns="1" style="width:100%"> 

         <p:graphicImage value="#{item.thumbnailDir}" />        
         <h:outputText value="#{item.createdate.toString()}" />       
         <p:commandLink value="Delete" 
             action="#{pictureManagementBean.removePicture(item.idpicture)}" ajax="false"/> 

        </h:panelGrid> 
        </p:panel> 
       </p:column> 
      </p:dataGrid> 

그래서 단순한 열 요소입니다. 전에 잘못 했어. 정말 고마워.

물론 백킹 빈은 @ViewScoped입니다!

관련 문제