0

好吧,我的问题是我的主页中没有调用任何对话框。IE:我有一个命令按钮应该调用“varDialogFindPacientes”但不起作用。我不知道我能做些什么来修复它。

看我的主页:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:p="http://primefaces.org/ui"
    xmlns:pe="http://primefaces.org/ui/extensions">

<h:head>

</h:head>
<h:body>
    <ui:composition>

        <p:dialog id="dialogCadastrar" width="900px" height="500px"
            header="Cadastrar Orçamento" widgetVar="varDialogCadastrar"
            modal="true" showEffect="fade" hideEffect="fade">
            <h:form id="formCadastrar">
                <p:panelGrid id="panelGridCadastar" styleClass="semBorda"
                    columns="2">

                    <h:outputText value="Data Emissão: " />
                    <p:inputText id="dataEmissao"
                        value="#{orcamentoMB.orcamento.dataEmissao}" readonly="true">
                        <f:convertDateTime pattern="dd/MM/yyyy" />
                    </p:inputText>

                    <h:outputText value="Data Validade: " />
                    <p:inputText id="dataValidade"
                        value="#{orcamentoMB.orcamento.dataValidade}" readonly="true">
                        <f:convertDateTime pattern="dd/MM/yyyy" />
                    </p:inputText>

                    <h:outputText value="Situação " />
                    <p:inputText id="situacao"
                        value="#{orcamentoMB.orcamento.situacao.descricao}"
                        readonly="true" />

                    <h:outputText value="Desconto (%): " />
                    <p:panelGrid columns="2" styleClass="semBorda">
                        <pe:inputNumber value="#{orcamentoMB.orcamento.desconto}"
                            id="desconto" symbol=" %" symbolPosition="suffix"
                            validatorMessage="O desconto não pode ser maior que #{orcamentoMB.maxDesconto} %">
                            <f:validateDoubleRange maximum="#{orcamentoMB.maxDesconto}" />
                        </pe:inputNumber>
                        <p:commandButton value="Recalcular" process="desconto"
                            icon="ui-icon-refresh"
                            update=":formCadastrar:totalGeral, :formCadastrar:totalGeralComDesconto" />
                    </p:panelGrid>

                    <h:outputText value="Observação: " />
                    <p:inputTextarea value="#{orcamentoMB.orcamento.observacoes}"
                        rows="5" cols="30" />

                    <h:outputText value="Dentista: *" />
                    <p:panel style="border:1px solid #e5e5e5;">
                        <p:inputText required="true"
                            requiredMessage="Selecione um dentista"
                            value="#{orcamentoMB.orcamento.dentistaOrcou.pessoaFisica.nome}"
                            readonly="true" size="30" id="dentistaOrcou" />
                        <p:commandButton icon="ui-icon-search" type="button"
                            onclick="varDialogFindDentistas.show()" />
                    </p:panel>

                    <h:outputText value="Paciente *" />
                    <p:panel style="border:1px solid #e5e5e5;">
                        <p:inputText required="true"
                            requiredMessage="Selecione um paciente"
                            value="#{orcamentoMB.orcamento.paciente.pessoaFisica.nome}"
                            readonly="true" size="30" id="paciente" />
                        <p:commandButton icon="ui-icon-search" type="button"
                            onclick="varDialogFindPacientes.show()" />
                    </p:panel>

                </p:panelGrid>
                <p:toolbar>
                    <p:toolbarGroup align="left">
                        <p:commandButton value="Add" icon="ui-icon-plus"
                            onclick="varDialogFindItensTabela.show()" type="button"
                            update=":formCadastrar:dataTableItens, :formCadastrar:salvarAceitando,:formCadastrar:salvarSemAceitar, :formCadastrar:totalGeral, 
                        :formCadastrar:totalGeralComDesconto" />

                        <p:commandButton value="Del" icon="ui-icon-minus"
                            disabled="#{orcamentoMB.selectedItemOrcamento == null}"
                            actionListener="#{orcamentoMB.delItemOrcamento}"
                            update=":formCadastrar:dataTableItens, :formCadastrar:totalGeral, 
                        :formCadastrar:totalGeralComDesconto, :formCadastrar:salvarAceitando,:formCadastrar:salvarSemAceitar" />
                    </p:toolbarGroup>

                </p:toolbar>

                <p:dataTable rowKey="#{item}" var="item"
                    value="#{orcamentoMB.itens}"
                    emptyMessage="Não foi encontrado nenhum registro"
                    id="dataTableItens"
                    selection="#{orcamentoMB.selectedItemOrcamento}"
                    selectionMode="single" rowIndexVar="rowIndex"
                    rowStyleClass="#{(rowIndex mod 2) eq 0 ? 'first-row' : 'second-row'}">


                    <p:column headerText="Nome"
                        sortBy="#{item.itemTabelaProcedimento.procedimento.nome}"
                        id="nome">
                        <h:outputText
                            value="#{item.itemTabelaProcedimento.procedimento.nome}" />
                    </p:column>

                    <p:column headerText="Valor"
                        sortBy="#{item.itemTabelaProcedimento.valor}" id="valor">
                        <h:outputText value="#{item.itemTabelaProcedimento.valor}">
                            <f:convertNumber currencySymbol="R$ " type="currency" />
                        </h:outputText>
                    </p:column>

                    <p:column headerText="Local Aplicação"
                        sortBy="#{item.localAplicacao.descricao}" id="localAplicacao">
                        <h:outputText value="#{item.localAplicacao.descricao}" />
                    </p:column>

                    <p:column headerText="Dente" sortBy="#{item.dente.descricao}"
                        id="dente">
                        <h:outputText value="#{item.dente.descricao}" />
                    </p:column>

                    <p:column headerText="Face"
                        sortBy="#{item.faceAplicacao.descricao}" id="face">
                        <h:outputText value="#{item.faceAplicacao.descricao}" />
                    </p:column>

                </p:dataTable>


                <p:panelGrid columns="2">
                    <h:outputText value="Total Geral: " />
                    <h:outputText value="#{orcamentoMB.totalGeral}" id="totalGeral">
                        <f:convertNumber currencySymbol="R$ " type="currency" />
                    </h:outputText>

                    <h:outputText value="Total Com Desconto: " />
                    <h:outputText value="#{orcamentoMB.totalGeralComDesconto}"
                        id="totalGeralComDesconto">
                        <f:convertNumber currencySymbol="R$ " type="currency" />
                    </h:outputText>
                </p:panelGrid>


                <p:toolbar>
                    <p:toolbarGroup align="left">
                        <p:commandButton icon="ui-icon-disk" value="Salvar Sem Aceitar"
                            id="salvarSemAceitar" disabled="#{orcamentoMB.itens.size() == 0}"
                            actionListener="#{orcamentoMB.salvar}"
                            oncomplete="if (!args.validationFailed){ varDialogCadastrar.hide() }"
                            update=":formOrcamentos:dataTableOrcamentos">
                            <f:attribute name="salvarAceitando" value="false" />
                        </p:commandButton>

                        <p:commandButton icon="ui-icon-disk" value="Salvar Aceitando"
                            id="salvarAceitando" disabled="#{orcamentoMB.itens.size() == 0}"
                            actionListener="#{orcamentoMB.salvar}"
                            oncomplete="if (!args.validationFailed){ varDialogCadastrar.hide() }"
                            update=":formOrcamentos:dataTableOrcamentos">
                            <f:attribute name="salvarAceitando" value="true" />
                        </p:commandButton>

                        <p:commandButton value="Cancelar" icon="ui-icon-close"
                            onclick="varDialogCadastrar.hide()" type="button" />
                    </p:toolbarGroup>
                </p:toolbar>

            </h:form>
        </p:dialog>

    </ui:composition>


</h:body>
</html>

所以,我将显示一个名为“varDialogFindPacientes”的页面

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:p="http://primefaces.org/ui">

<h:head>

</h:head>
<h:body>
    <ui:composition>

        <p:dialog id="dialogFindPacientes" width="600px" height="auto"
            header="Pesquisar Pacientes" widgetVar="varDialogFindPacientes"
            modal="true" showEffect="fade" hideEffect="fade">
            <h:form id="formFindPacientes">
                <p:dataTable rowKey="#{paciente.id}" var="paciente"
                    value="#{orcamentoMB.pacientes}" paginator="true"
                    emptyMessage="Não foi encontrado nenhum registro" rows="20"
                    id="dataTablePacientes" selection="#{orcamentoMB.selectedPaciente}"
                    selectionMode="single" rowIndexVar="rowIndex"
                    rowStyleClass="#{(rowIndex mod 2) eq 0 ? 'first-row' : 'second-row'}"
                    paginatorTemplate="{FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink}">

                    <p:ajax event="rowDblselect" process="dataTablePacientes"
                        listener="#{orcamentoMB.updatePacienteFromFind}"
                        oncomplete="dialogFindPacientes.hide()"
                        update=":formCadastrar:paciente" />

                    <p:column headerText="Nome" sortBy="#{paciente.pessoaFisica.nome}"
                        filterBy="#{paciente.pessoaFisica.nome}" id="nome"
                        filterMatchMode="contains">
                        <h:outputText value="#{paciente.pessoaFisica.nome}" />
                    </p:column>
                </p:dataTable>
            </h:form>
        </p:dialog>
    </ui:composition>


</h:body>
</html>

编辑1:

我还有另一个问题,来自我的 ManagedBean 的 @PostConstruct 被调用每个 ajax 调用。

4

0 回答 0