Jsf PrimeFaces动态禁用和启用按钮actionListener不会被激发

Jsf PrimeFaces动态禁用和启用按钮actionListener不会被激发,jsf,primefaces,Jsf,Primefaces,我的xhtml如下所示: <p:dataTable rowKey="#{item.idMajor}" editable="true" selectionMode="single" value="#{majorController.beans}" selection="#{majorController.selectedBean}" var="item" id="majorsTable" lazy="true" pa

我的xhtml如下所示:

 <p:dataTable
    rowKey="#{item.idMajor}"
    editable="true"
    selectionMode="single"
    value="#{majorController.beans}" 
    selection="#{majorController.selectedBean}"
    var="item"
    id="majorsTable"
    lazy="true"
    paginator="true"
    rows="5"
    rowsPerPageTemplate="5,10,15"       
    >
    <p:column headerText="Nazwa">
        <h:outputText value="#{item.nameAsEnum.toString()}"/>
    </p:column>
    <p:column headerText ="Symbol">
        <h:outputText value="#{item.symbolAsEnum.toString()}"/>
    </p:column>
    <p:ajax update=":form1:adminView:deleteMajorButton,
            :form1:adminView:editMajorButton,
            :form1:adminView:connectSubjectsButton"

            event="rowSelect"/>
    <p:ajax update=":form1:adminView:deleteMajorButton,
            :form1:adminView:editMajorButton,
            :form1:adminView:connectSubjectsButton" 

            event="rowUnselect"/>
</p:dataTable>
<p:commandButton    value="Nowy"
                    type="button" 
                    onclick="newMajorDlg.show()"
                    />
<p:commandButton value="Usuń"
                 actionListener="#{majorController.onClickDelete()}"
                 id="deleteMajorButton"
                 process="@this,majorsTable"
                 disabled="#{not majorController.itemSelected}"
                 update=":form1"/>
<p:commandButton value="Edytuj"
                 process="@this,majorsTable"
                 id="editMajorButton"
                 update=":form1:adminView:editMajorDialog"
                 disabled="#{not majorController.itemSelected}"
                 oncomplete="editMajorDlg.show()"/>
<p:commandButton value="Przypisz przedmioty"
                 actionListener="#{majorController.loadPickList()}"
                 id="connectSubjectsButton"
                 disabled="#{not majorController.itemSelected}"
                 process="@this,majorsTable"
                 update=":form1:adminView:subjectPickListDialog"
                 oncomplete="subjectPickDlg.show()"
                 />
当datatable中并没有选择项时,我尝试禁用按钮。 禁用和启用按钮正常工作,但在启用按钮操作侦听器之后 连接到该按钮不会着火


感谢您在advatage中提供的帮助。

在禁用按钮之前,按钮是否正常工作?您能否从浏览器的javascript控制台确认按钮确实已启用,并在单击按钮时向服务器发送请求?我的直觉是这些按钮没有被正确启用,这就是为什么在请求处理过程中这些命令被忽略的原因