0

<p:dataTable id="dtCarg">のコマンド ボタンからを更新するにはどうすればよい<p:dialog>ですか?

次のエラーが発生し続けます。

「table_servidoresxdependencia」から参照される識別子「dtCarg」を持つコンポーネントが見つかりません

コードは次のとおりです。

<h:form id="formGestionServidores" prependId="false" style="font-size:10px;">
    <p:panel>
        <table id="tabla_objetivo_02">
            <tr>
                <td><p:fieldset id="tb_tabla_new" legend="Servidores" styleClass="ui-state-hover"
                        style="min-width:98%;height:100% ">

                        <p:dataTable id="dtCarg" var="cargo" value="#{mantePlazasController.listCargos}"
                            rowStyleClass="#{cargo.colorEstado}" emptyMessage="No existen plazas para la unidad seleccionada"
                            editable="true" style="font-weight: normal;overflow:auto;min-width:98%;">
                            <p:column headerText="Unidad">
                                <h:outputText value="#{cargo.serDescDep}"
                                    rendered="#{mantePlazasController.nivel!=2 and mantePlazasController.nivel!=3 and mantePlazasController.nivel!=4 and mantePlazasController.nivel!=5 and mantePlazasController.nivel!=6 and mantePlazasController.nivel!=7}" />
                                <h:outputText value="#{cargo.serDescDepNVL3}"
                                    rendered="#{mantePlazasController.nivel==2 or mantePlazasController.nivel==3 or mantePlazasController.nivel==4 or mantePlazasController.nivel==5 or mantePlazasController.nivel==6 or mantePlazasController.nivel==7}" />
                            </p:column>
                            <p:column headerText="Historial">
                                <center>
                                    <p:commandButton id="btnHistorial" icon="ui-icon-note" oncomplete="dlRegularizar.show()"
                                        title="Historial de Plaza" action="#{mantePlazasController.mostrarHistorial}">
                                        <f:setPropertyActionListener value="#{cargo}" target="#{mantePlazasController.cargoSelected}" />
                                    </p:commandButton>
                                    falta oncomplete falta actualizar
                                </center>
                            </p:column>
                        </p:dataTable>
                    </p:fieldset></td>
            </tr>
        </table>

        <p:dialog widgetVar="dlRegularizar" header="Regularizar Servidores" width="1210" modal="true">
            <p:dataTable id="table_servidoresxdependencia" var="servidorxdependencia"
                value="#{mantePlazasController.servidoresxdependencia}"
                emptyMessage="No existen trabajadores en el historial, para esa plaza"
                rowStyleClass="#{servidorxdependencia.color_his}">

                <p:ajax event="rowEdit" listener="#{mantePlazasController.onEditRowServidorxDependencia}"
                    update="tabla_objetivo_02:dtCarg,table_servidoresxdependencia,notificacionCalificacion,my_json_data" />

                <f:facet name="header">
                        Servidor-Dependencia HISTORIAL
                    </f:facet>
                <p:column headerText="Codigo">
                    <h:outputText value="#{servidorxdependencia.serCod}" />
                </p:column>
                <p:column headerText="Fecha de inicio">
                    <p:cellEditor>
                        <f:facet name="output">
                            <h:outputText value="#{servidorxdependencia.serFech_in_unmsm_str}" />
                        </f:facet>
                        <f:facet name="input">
                            <p:calendar value="#{servidorxdependencia.serFech_in_unmsm}" navigator="true" inputStyle="width:70px"
                                locale="es" pattern="dd/MM/yyyy" showButtonPanel="true" readOnlyInputText="true" showOn="button">
                            </p:calendar>
                        </f:facet>
                    </p:cellEditor>
                </p:column>
                <p:column headerText="Edit" style="width:20px">
                    <p:rowEditor />
                </p:column>
                <p:column headerText="Elim">
                    <center>
                        <p:commandButton id="HisEliSer" icon="ui-icon-trash" oncomplete="puenteEliSerHis(),linea_ocultar()"
                            title="Eliminar">
                            <f:setPropertyActionListener value="#{servidorxdependencia}" target="#{mantePlazasController.servidorHisElim}" />
                        </p:commandButton>
                    </center>
                </p:column>
            </p:dataTable>
        </p:dialog>
    </p:panel>
</h:form>
4

1 に答える 1

3

したがって、基本的には、

<h:form id="formGestionServidores" prependId="false" ...>
    <p:panel>
        <table id="tabla_objetivo_02">
            <tr>
                <td>
                    <p:fieldset id="tb_tabla_new" ...>
                        <p:dataTable id="dtCarg" ...>

次のように更新で参照したい

<p:ajax ... update="tabla_objetivo_02:dtCarg" />

これは実際には機能しません。HTML<table>要素は JSF コンポーネントを表していないため、JSF コンポーネント ツリーでは使用できません。まず、正しいクライアント ID を見つける最も簡単な方法は、生成された HTML 出力を右クリックしてブラウザでソースを表示することです。の HTML 表現を見つけて、更新でその属性を<p:dataTable id="dtCarg">正確に使用します。id:

これまでに投稿されたビュー マークアップに基づいて<h:form prependId="false">、生成された HTML 表現には が含まれているだけなid="dtCarg"ので、次のように参照する必要があります。

<p:ajax ... update=":dtCarg" />

以下も参照してください。

于 2013-01-11T16:51:40.017 に答える