2014-01-15 3 views
1

목록에서 파일을 선택하고 다운로드하는 파일 다운로더를 사용하여 PrimeFaces 패널을 수정했습니다.Primefaces datatable right

이제 왼쪽 클릭으로 파일을 선택하고 마우스 오른쪽 버튼으로 클릭 한 다음 "파일 다운로드"를 선택해야합니다.

그러나 대부분의 사람들은 파일을 마우스 오른쪽 단추로 클릭하고 "다운로드"하는 데 사용됩니다.

파일을 선택할 때 아래 코드에서 알 수 있듯이 다운로드 할 파일 이름을 올바르게 설정 한 actionListener actionListener = "# {downloadsController.selectFile}"이 호출 된 후 오른쪽 클릭으로 actionListener = "# {downloadsController.downloadFile} ".

마우스 오른쪽 버튼을 클릭했을 때 어떻게 selectFile을 호출 할 수 있습니까? 또는 오른쪽 클릭으로 file.name에 액세스 하시겠습니까? 당신이 Primefaces 4를 사용하는 경우 here을 보여로

<p:panel id="propPanel"> 
    <h:form> 
     <p:contextMenu for="fileExplorer"> 
      <p:menuitem value="Download" actionListener="#{downloadsController.downloadFile}" 
       icon="ui-icon-arrowthickstop-1-s" ajax="false" > 
       <p:fileDownload value="#{downloadsController.fileToDownload}" /> 
      </p:menuitem> 
     </p:contextMenu> 
     <p:scrollPanel style="height:300px"> 
      <p:dataTable id="fileExplorer" var="file" value="#{downloadsController.files}" 
       emptyMessage="This folder is empty" 
       rowKey="#{file.name}" selectionMode="single" > 
       <p:column style="width:308px" sortBy="#{file.name}"> 
        <f:facet name="header"> 
         Name 
        </f:facet> 
        <p:commandLink style=" text-decoration: none;" 
         actionListener="#{downloadsController.selectFile}" update=":treePanel"> 
         <f:param name="fileName" value="#{file.name}"/> 
         <p:spacer width="5" height="10" /> 
         <h:outputText value="#{file.name}" escape="false"/> 
        </p:commandLink> 
       </p:column> 
       <p:column style="width:55px" sortBy="#{file.size}"> 
        <f:facet name="header"> 
         Size 
        </f:facet> 
        <h:outputText value="#{file.size}" escape="false"> 
        </h:outputText> 
       </p:column> 
      </p:dataTable> 
     </p:scrollPanel> 
    </h:form> 
</p:panel> 

답변

2

당신은 단순히 행 선택을 사용할 수 있습니다.

<p:contextMenu for="cars"> 
... 
</p:contextMenu> 
<p:dataTable id="cars" var="car" value="#{tableBean.carsSmall}" rowKey="#{car.model}" 
       selection="#{tableBean.selectedCar}" selectionMode="single"> 
... 
</p:dataTable>