2013-02-15 3 views
7

이 것은 나를 위해 작동하지 않습니다 :참조하는 방법 p : commandLink in p : dataTable from p : blockUI trigger?

<h:form id="wfMgtForm"> 
    . 
    . 
    . 
    <p:dataTable id="wfTable" ..." var="item"> 
     <p:column> 
     . 
     . 
     . 
     </p:column> 
     <p:column> 
      <p:commandLink id="editWatchfolderButtonId" oncomplete="dlgEditWF.show()" update=":editWFForm" process="@none"> 
       <f:param value="#{item.value.ID}" name="editId"/> 
       <h:graphicImage alt="Edit Image" style="border: none" value="./images/edit.png" /> 
      </p:commandLink> 
     </p:column> 
    . 
    . 
    . 
    <p:blockUI block=":wfMgtForm" trigger="editWatchfolderButtonId"> 
     Loading...<br/> 
     <p:graphicImage alt="Loader Image" value="/images/loader.gif"/> 
    </p:blockUI> 
</h:form> 

내가 점점 오전 오류 것은 :

Cannot find component with identifier "editWatchfolderButtonId".

wfMgtForm:wfTable:0:editWatchfolderButtonId wfMgtForm:wfTable:1:editWatchfolderButtonId wfMgtForm:wfTable:2:editWatchfolderButtonId wfMgtForm:wfTable:3:editWatchfolderButtonId
등 내가 만든이 자동차를 참조하는 방법을

: 나는 ID를 찾기 위해 방화범을 사용하는 경우

, 나는 모든 행이 다른 ID를 가지고 있다는 것을 발견 ID : <p:blockUI>?

답변

10

<p:dataTable>에서 쇼케이스 변형 예하는 것도 NamingContainer이다. 그것의 ID를 또한 포함하십시오.

<p:blockUI ... trigger="wfTable:editWatchfolderButtonId"> 

행 인덱스는 서버 측이 아니라 클라이언트 측에만 있으므로, 관련이 없습니다.


업데이트는 : 그냥 참으로 예외를 수정, 로컬로 테스트하지만, 모든 (PrimeFaces 3.5)에서 블록 UI를 트리거하지 않았다. PrimeFaces의 버그처럼 보입니다. 한편

는 가장 좋은 건은 다소 다른 AKSEL에 의해 제안 수동으로 트리거 할 수 있지만 : BlockUI가 있는지 확인 발사되지 않은 경우,

<p:commandLink ... onclick="bui.show()" oncomplete="bui.hide()"> 
... 
<p:blockUI widgetVar="bui" /> 
+1

버그? 오 ... 다시는 안돼 ... – Danijel

+0

v 3.4.1에서 나에게도 예외는 없지만 차단 된 UI는 없다. – Danijel

+0

내 UI에 대한 전반적인 사용자 경험이 저하됩니다. PrimeFaces에 패치를 제공 할 수있는 * 가능성이 있습니까? 고치는 것이 얼마나 힘듭니다? – Danijel

4

다음은 commandLink를 사용하여 무언가를 차단하는 간단한 예입니다. here

<h:form> 
    <p:commandButton value="blockMe" id="someId" /> 
    <br /> 
    <p:commandLink id="pnlBtn" value="Block" type="button" 
     onclick="bui.show()" /> 
    <br /> 
    <p:commandLink id="pnlBtn2" value="Unblock" type="button" 
     onclick="bui.hide()" /> 

    <p:blockUI block="someId" widgetVar="bui" /> 
</h:form> 
+0

질문을 편집했습니다. – Danijel

+0

다른 사람이 추측 된 것이 더 빠르지 만 BalusC가 참조하는대로 응답을 유지합니다. :) 미래에이 문제를 안고있는 사람이라면,이 답변이 편집 된 것보다 원래의 질문에 더 잘 맞음을 주목할 가치가 있습니다. –

0

사람들을 위해 자신만큼 우둔은 " 트리거 "대상에 Ajax를 사용할 수 있습니다. 나는 BlockUI가 발사되지 않은 이유를 알아 내려고 거의 하루를 보냈다. 대상을 'ajax = "false"'로 구성했다.

0

jquery 선택기를 사용할 수 있습니다.

<p:commandLink styleClass="mybutton-class"> 
<p:blockUI ... trigger="@(.mybutton-class)">