簡體   English   中英

dataTable,rowSelect和禁用commandButton(JSF2.0 + Primefaces)

[英]dataTable, rowSelect and disable commandButton (JSF2.0 + Primefaces)

我有一個dataTable,我想要以下行為:

我選擇一行並激活addRFI按鈕。

我按下addRFI按鈕,它執行addRFICustomer方法,並出現ConfirmDialog。

我按下確認按鈕,該表沒有選擇任何行。

如果未選擇行,則不會激活addRFI按鈕。

我的代碼(MyCSR.xhtml):

   <h:form id="assignForm">   
      <p:dataTable var="csr" value="#{myCsrController.csrModel}" id="csrList" editable="true"  
            selectionMode="single" selection="#{myCsrController.csrSelected}" rowKey="#{csr.id}">

            <f:facet name="header">  
                My Work Page
            </f:facet>  

            <p:ajax event="rowSelect" listener="#{myCsrController.onRowSelected}" update="addRFI,addTR" />  
            <p:ajax event="rowUnselect"  listener="#{myCsrController.onRowUnselected}" update="addRFI,addTR" />  

            <p:column headerText="CSR Number">  
                <h:outputText value="#{csr.csrNumber}" />  
            </p:column>
                 ...
            <f:facet name="footer">  
                <p:commandButton id="addRFI" value="Add/Remove RFI Customer" oncomplete="wdlg1.show()"  actionListener="#{myCsrController.addRFICustomer}" update=":assignForm:confirmDialog" disabled="#{!myCsrController.isSelected}" />  
            </f:facet>
        </p:dataTable>      

        <p:confirmDialog id="confirmDialog" header="Add RFI Customer" widgetVar="wdlg1" message="Please confirm that an RFI Customer activity has been created for #{myCsrController.csrSelected.csrNumber}">       
            <p:commandButton id="confirmButton" value="Ok" oncomplete="wdlg1.hide()" update=":assignForm:csrList" />
        </p:confirmDialog>
    </h:form>

MyCsrController:

  public void addRFICustomer(ActionEvent event){        
    ...
        }
  public void onRowSelected(SelectEvent event){ 
    setIsSelected(true);
}

  public void onRowUnselected(UnselectEvent event){ 
    setIsSelected(false);
}

我的問題是方法addRFICustomer未執行,我認為當我先按下addRFI按鈕時,禁用該按鈕並且未執行actionListener ...我想先執行偵聽器,我在做什么錯? 謝謝

檢查是否使用java.awt.event.ActionEvent導入ActionEvent。

我嘗試了您的代碼,並發現帶有java.awt.event.ActionEvent導入ActionEvent可能是您的問題。

我在一開始使用java.awt.event.ActionEvent ,結果與您的結果相同。

嘗試導入javax.faces.event.ActionEvent

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM