我在xhtml中有这段代码
<p:menubar style="float:right; border: none; background-color: transparent; ">
<p:submenu label="#{bundlePantallas.txt_Acciones}" icon="ui-icon-gear" styleClass="botonVolver botonVolver:hover" style="right:12px">
<p:menuitem id="genInform" value="#{bundlePantallas.txt_GenerarInforme}" icon="ui-icon-disk" ajax="true" onclick="PrimeFaces.monitorDownload(start, stop);" update="growl" disabled="#{alumnoHAController.selected eq null}">
<p:fileDownload value="#{informesBean.informeAlumno()}"/>
</p:menuitem>
<p:menuitem value="#{bundlePantallas.EnviarCorreo}" icon="ui-icon-mail-closed" actionListener="#{menuController.abrirDialogoCorreo()}" update="growl"/>
</p:submenu>
// .... rest code ...
当我在这个数据表上取消选择一行时,我试着这样做:
<p:dataTable id="datalist" widgetVar="datalistW" value="#{alumnoHAController.items}" var="item"
selectionMode="single" selection="#{alumnoHAController.selected}"
paginator="true" rowKey="#{item.idAlumno}" emptyMessage="#{bundlePantallas.texto_SinDatos}"
rowIndexVar="rowIndex" rowStyleClass="#{(rowIndex mod 2) eq 0 ? 'dataTableFila1' : 'dataTableFila2'}"
rows="10" rowsPerPageTemplate="10,20,30,40,50">
<p:ajax event="rowSelect" update="createButton viewButton editButton deleteButton"/>
<p:ajax event="rowUnselect" update="createButton viewButton editButton deleteButton"/>
<p:column width="3%">
<p:rowToggler />
</p:column>
如果我没有选择前一个数据表的任何列,将禁用menuItem。
我不知道在哪里忘记了更新,因为当我进入此页面时第一次禁用该项目(在java代码中为bean.selected = null
)但是当我选择了某个时,menuitem保持禁用状态我在视图或编辑按钮中输入(在选择的Java代码上保留)