当前位置: 首页 > 知识库问答 >
问题:

从其他标签内的另一个标签内的另一个标签更新primeface可数据

经博延
2023-03-14

大家好,我在更新一些组件时遇到问题,我正在使用JSF、Primeface 5.3、Hibernate。

我有一个包含数据表的选项卡:选项卡1,我有另一个选项卡选项卡2,我想做的是当我更改选项卡2中的农学列并单击Guardar Cambios时,我想更新选项卡1的数据表。我可以更新数据库,当我注销并再次登录时,更改就在那里,但我想要不注销的更改。

这是我的管理员。xhtml:

<h:form id="frm">
    <p:growl id="growl" life="3500" sticky="false" showDetail="true" />
    <div class="navbar color-bar"></div>
    <div class="container-fluid">
        <div class="row">
            <div class="col-md-7">
                <div class="row">
                    <div class="col-md-12">
                        <p:tabView id="tabs">
                            <p:tab title="Estado asignaciones">
                                <p:panel id="panelEstado">
                                    <h:form id="formDta">
                                        <p:dataTable
                                            value="#{estadoAsignaciones.listaEstadoAsignaciones}"
                                            var="data" paginator="true" rowKey="#{data.idAuditor}"
                                            rows="10" selectionMode="single"
                                            selection="#{estadoAsignaciones.estadoAsignaciones}">
                                            <p:ajax event="rowSelect"
                                                listener="#{estadoAsignaciones.onRowSelect()}"
                                                onstart="PF('blockUIWidget').show()"
                                                oncomplete="PF('overPnl').show()" update="frm" />
                                            <p:column headerText="Auditor">
                                                <h:outputLabel
                                                    value="#{data.nombreAuditor} #{data.apellidoAuditor}" />
                                            </p:column>
                                            <p:column headerText="Farmacéutica">
                                                <h:outputLabel value="#{data.farmaceuticaAsignada}" />
                                            </p:column>
                                            <p:column headerText="Progreso">
                                                <p:progressBar value="#{data.porcentaje}"
                                                    labelTemplate="{value}%" id="avanceBar" style="width:80%" />
                                            </p:column>
                                        </p:dataTable>
                                    </h:form>
                                </p:panel>
                                <p:overlayPanel id="panelOver" widgetVar="overPnl"
                                    showEffect="fade" hideEffect="fade" dismissable="false"
                                    showCloseIcon="true">
                                    <p:panel id="avance" header="Avance auditoria"
                                        class="space robotome">
                                        <p:progressBar id="avanceBar"
                                            value="#{estadoAsignaciones.porcentajeValue}"
                                            style="width:100%" labelTemplate="{value}%" />
                                    </p:panel>
                                    <p:panel id="tiempo" header="Tiempo" class="space robotome">
                                        <h:outputLabel
                                            value="Fecha inicio: #{estadoAsignaciones.fecha}" />
                                        <br />
                                        <h:outputLabel
                                            value="Fecha Actual: #{estadoAsignaciones.fechaActual}" />
                                        <br />
                                        <h:outputLabel
                                            value="Hora inicio: #{estadoAsignaciones.hora}" />
                                        <br />
                                        <h:outputLabel
                                            value="Tiempo transcurrido: #{estadoAsignaciones.calHoraDif} horas" />
                                    </p:panel>
                                    <p:panel id="auditor" header="Auditor" class="robotome">
                                        <p:outputLabel
                                            value="Nombres: #{estadoAsignaciones.getEstadoAsignaciones().nombreAuditor}" />
                                        <br />
                                        <p:outputLabel
                                            value="Apellidos: #{estadoAsignaciones.getEstadoAsignaciones().apellidoAuditor}" />
                                    </p:panel>
                                </p:overlayPanel>
                                <p:blockUI block="frm" widgetVar="blockUIWidget">
                                    <p:graphicImage name="imgs/loading.gif" width="50" height="50" />
                                </p:blockUI>
                            </p:tab>
                            <p:tab title="Asignaciones">
                                <p:dataTable id="dtA"
                                    value="#{asignacionesBean.seleccionAuditores}" var="auditor"
                                    paginator="true" rows="5">
                                    <p:column headerText="Auditor">
                                        <h:outputText value="#{auditor.nombreAuditor}" />
                                    </p:column>
                                    <p:column headerText="Farmaceutica">
                                        <p:selectOneMenu value="#{auditor.idFarmaceutica}">
                                            <f:selectItem itemLabel="#{data.farmaceutica}"
                                                noSelectionOption="true" itemDisabled="true" itemValue="" />
                                            <f:selectItems
                                                value="#{asignacionesBean.mapSeleccionFarmaceuticas}" />
                                        </p:selectOneMenu>
                                    </p:column>
                                    <p:column>
                                        <p:commandButton value="Guardar cambios" update=":frm"
                                            actionListener="#{asignacionesBean.guardarRespuestaAsignaciones(auditor)}"
                                            process="@this"
                                            onclick="PF('blockUIWidgetAsignaciones').hide()"
                                            onsuccess="PF('blockUIWidgetAsignaciones').show()" />
                                    </p:column>
                                </p:dataTable>

我感谢你的帮助。

共有1个答案

霍建柏
2023-03-14

我不明白你为什么在表单中使用表单。删除除主表单之外的所有表单。

在第一个选项卡中,将id添加到数据表中。然后将prependId=false放入面板网格,如下所示。

<p:panel id="panelEstado" prependId="false">
     <p:dataTable id="firstTable" value="#{estadoAsignaciones.listaEstadoAsignaciones}"
      var="data" paginator="true" rowKey="#{data.idAuditor}"
      rows="10" selectionMode="single" selection="#{estadoAsignaciones.estadoAsignaciones}">

然后在表2的Farmaceutica列中更改代码,如下所示

<p:selectOneMenu value="#{auditor.idFarmaceutica}">
 <f:selectItem itemLabel="#{data.farmaceutica}" noSelectionOption="true"  itemDisabled="true" itemValue="" />
 <f:selectItems value="#{asignacionesBean.mapSeleccionFarmaceuticas}" />
 <p:ajax event="valueChange" update=":firstTable"/>
</p:selectOneMenu>

在Guardar Cambios中,将代码更改为此代码。

<p:commandButton value="Guardar cambios" update=":firstTable" actionListener="#{asignacionesBean.guardarRespuestaAsignaciones(auditor)}" process="@this"
onclick="PF('blockUIWidgetAsignaciones').hide()" onsuccess="PF('blockUIWidgetAsignaciones').show()" />
 类似资料:
  • 我想做一个应用程序,当我按下AddTask类中的save按钮时,文本输入中的文本将直接更新到Details类中的标签,但我所做的在那里不起作用…有谁能帮我一下吗?

  • 我正在尝试使用漂亮的汤解析网页(这是我有生以来第一次),我遇到了一个奇怪的错误。html结构中的标记中有一个标记,我一直收到错误 html标签的结构如下:页面上项目的整个网格都在div类"properties_reviews"中,然后进入div类"preview"中,用于特定项目,该类"preview"还有两个类:照片的"preview-media"和我需要解析的文本信息的"preview-con

  • 问题内容: 目标: 使用jQuery,我试图替换所有出现的情况: 与: 我的解决方案: 我了解到以下内容: 我的解决方案的问题: 但是问题在于它用 第一个 “ code”标签之间的内容替换了(第二,第三,第四等)“ code”标签之间的所有内容。 例如 变成 我认为我需要使用“ this”和某种功能,但恐怕我还在学习,并且不太了解如何将解决方案组合在一起。 问题答案: 您可以将一个函数传递给 [d

  • 我们这里有一个传统的远程系统,没有webapi、webservice 然后我们需要通过Selenium进行集成 我们需要从一个主选项卡打开多个选项卡来进行提取,但当更改为所需选项卡并通过css选择器获取值时,它总是从第一个选项卡获得结果<我们的系统不能在互联网上打开,然后我以谷歌为例做了同样的事情,同样的行为也发生了。是虫子还是我的错?有人能看出什么是错的吗 下面是一个没有错误检查的简化版本,它的

  • 问题内容: 我们这里有一个遗留的远程系统,没有webapi,webservice等…, 那么我们需要通过Selenium进行集成。 我们需要从一个主选项卡中打开多个选项卡来进行提取,但是当更改为所需的选项卡并通过css选择器获取值时,它总是从fisrt选项卡中获得结果。 我们的系统无法在互联网上打开,然后我以Google为例进行了相同的操作,发生了相同的行为。是错误还是我的错?有人可以看到出什么问

  • 问题内容: 我在Java中使用DOM表示形式 如何区分xml标记中是否包含值或是否包含另一个嵌入式标记?例如,我可以拥有: 要么 我想做以下 如何写条件1? 问题答案: 您可以通过遍历子节点列表来测试每个子节点: 然后condition1是。 或者,您可以使用实施测试。但是,如果 是 子元素,这种方法会遍历整个片段您正在测试,并分配大量内存。