如何显示对话框支持bean?

时间:2015-06-22 19:48:12

标签: jsf primefaces

查看对话时遇到问题。我正在尝试在bean方法中运行一个对话框:

nivelAcceso = login.getSeguridadManager().nivelAcceso(expediente.getTipoExpediente());

if (nivelAcceso == 0) {
    RequestContext context = RequestContext.getCurrentInstance();
    context.execute("Vista.show()");
}

我想要做的是如果nivelAcceso = 0执行对话但是你没有这样做,好像对话框没有执行命令我检查我的页面上的nivelAcceso是否为0我有以下内容:

<p:column width="80">
    <f:facet name="header">
        <p:outputLabel value="Opciones"/>
    </f:facet>

    <p:commandLink value="Ver"
                   actionListener="#{verExpedienteController.abrirExpediente(expediente.id)}" />

</p:column>

<p:ajax event="rowDblselect"
        listener="#{verExpedienteController.abrirExpediente(verExpedienteController.expedienteSeleccionado.id)}"/>

我的工作正常,但是当我给出commandLink时,如果这个panelGrid

,则不会打开对话框
<p:panelGrid style="width: 100%" rendered="#{verExpedienteController.expediente eq null or verExpedienteController.nivelAcceso eq 0}">
    <p:row>
        <p:column style="text-align: center">
            <p:outputLabel value="#{verExpedienteController.expediente eq null? 'Disculpe, la Subserie no existe' : 'Disculpe, no posee permisos para ver este Expediente'}"/>
        </p:column>
    </p:row>

    <p:row>
        <p:column style="text-align: center">
            <p:commandButton value="Cancelar" action="BusquedaExpediente"/>
        </p:column>
    </p:row>
</p:panelGrid>

我想打开对话框而不是可能导致问题的panelGrid。

1 个答案:

答案 0 :(得分:0)

我只能假设它是某种基于权限的显示对话框?
如果是这种情况,你不希望在批准之前呈现对话框,因为任何人都可以执行widgetVar.show()。做类似的事情<p:panel id="updateDialog"> <p:dialog rendered="#{bean.renderedBoolean}" visible="true"> dialog stuff </p:dialog></p:panel>

当你想要显示对话框时,用_ =初始化renderBoolean

if (nivelAcceso == 0) {  renderedBoolean=true;
    RequestContext context = RequestContext.getCurrentInstance();
    context.update("updateDialog");
}