0

理由はわかりませんが、パネル グリッドに設定した列が 1 つの列であるかのようにマージされます。

ここにコードがあります

<h:panelGrid id="formOcurrencia">
        <p:row>
            <p:column>
                <h:outputLabel value="Número de catalogo:" for="numcatInput" />
            </p:column>
            <p:column>
                <p:inputText id="numcatInput"
                    value="#{ocurrenciaDM.ocurrencia.catalogNumbOcurrencia}" />
            </p:column>

            <p:column>
                <h:outputLabel value="Número de record:" for="numrecInput" />
            </p:column>
            <p:column>
                <p:inputText id="numrecInput"
                    value="#{ocurrenciaDM.ocurrencia.recordNumbOcurrencia}" />
            </p:column>
        </p:row>
        <p:row>
            <p:column>
                <h:outputLabel value="Fecha inicial:" for="cal_ocurr1Input" />
            </p:column>
            <p:column>
                <p:calendar id="cal_ocurr1Input"
                    value="#{ocurrenciaDM.ocurrencia.fechaInicialOcurrencia}"
                    mindate="1/1/1960" pattern="dd/MM/yyyy" navigator="true"
                    display="inline">
                    <f:convertDateTime pattern="dd/MM/yyyy" timeZone="GMT+5" />
                </p:calendar>
            </p:column>
            <p:column>
                <h:outputLabel value="Fecha final:" for="cal_ocurr2Input" />
            </p:column>
            <p:column>
                <p:calendar id="cal_ocurr2Input"
                    value="#{ocurrenciaDM.ocurrencia.fechaFinalOcurrencia}"
                    mindate="1/1/1960" pattern="dd/MM/yyyy" navigator="true"
                    display="inline">
                    <f:convertDateTime pattern="dd/MM/yyyy" timeZone="GMT+5" />
                </p:calendar>
            </p:column>
        </p:row>
</h:panelGrid>

そして、これがページにどのように表示されるかです

<tbody>
<tr>
<td><label for="taxonomiaAdminForm:numcatInput">
Número de catalogo:</label><input aria-multiline="false" aria-readonly="false" aria-disabled="false" role="textbox" id="taxonomiaAdminForm:numcatInput" name="taxonomiaAdminForm:numcatInput" class="ui-inputfield ui-inputtext ui-widget ui-state-default ui-corner-all" type="text"><label for="taxonomiaAdminForm:numrecInput">
Número de record:</label><input aria-multiline="false" aria-readonly="false" aria-disabled="false" role="textbox" id="taxonomiaAdminForm:numrecInput" name="taxonomiaAdminForm:numrecInput" class="ui-inputfield ui-inputtext ui-widget ui-state-default ui-corner-all" type="text"></td>
</tr>
<tr>
<td><label for="taxonomiaAdminForm:cal_ocurr1Input">
Fecha inicial:</label><span id="taxonomiaAdminForm:cal_ocurr1Input"><input aria-multiline="false" aria-readonly="false" aria-disabled="false" role="textbox" id="taxonomiaAdminForm:cal_ocurr1Input_input" name="taxonomiaAdminForm:cal_ocurr1Input_input" class="ui-inputfield ui-widget ui-state-default ui-corner-all hasDatepicker" type="text"></span><label for="taxonomiaAdminForm:cal_ocurr2Input">
Fecha final:</label><span id="taxonomiaAdminForm:cal_ocurr2Input"><input aria-multiline="false" aria-readonly="false" aria-disabled="false" role="textbox" id="taxonomiaAdminForm:cal_ocurr2Input_input" name="taxonomiaAdminForm:cal_ocurr2Input_input" class="ui-inputfield ui-widget ui-state-default ui-corner-all hasDatepicker" type="text"></span></td>
</tr>
<tr>
<td><label for="taxonomiaAdminForm:cont_indInput">
Conteo individual:</label><input aria-multiline="false" aria-readonly="false" aria-disabled="false" role="textbox" id="taxonomiaAdminForm:cont_indInput" name="taxonomiaAdminForm:cont_indInput" class="ui-inputfield ui-inputtext ui-widget ui-state-default ui-corner-all" type="text"></td>
</tr>

各行には 1 つの列しかありません。例をページにコピーして貼り付けると動作します。次に、いくつかの行をパネルグリッドにコピーすると、列が再び失われます。

4

3 に答える 3

0

<p:row>これらをすべて削除して<p:column>、 の列数を設定してみてください<h:panelGrid>。この属性は、 HTML 用語ごとに 9つの要素columnsを持つために HTML テーブルを自動的に構築することに注意してください)。<table><td><tr>

<h:panelGrid id="formOcurrencia" columns="4">
    <h:outputLabel value="Número de catalogo:" for="numcatInput" />
    <p:inputText id="numcatInput"
        value="#{ocurrenciaDM.ocurrencia.catalogNumbOcurrencia}" />
    <!-- and all the other components... -->
</h:panelGrid>

もう 1 つのアドバイス: ID は、タグの接頭辞let のような、より意味のある名前を代わりに使用する<h:panelGrid>べきではありません。formXxxpnlXxxform<h:form>

colspan / rowspan を使用したいように見えるので、ここで提案されている解決策を探す必要があります: How to set colspan and rowspan in JSF panelGrid? . PrimeFaces を使用しているため、<p:panelGrid>代わりに使用する必要があります。

于 2013-06-15T21:20:40.810 に答える
0

何が問題だったのか本当にわかりません.1行と2列になるまですべての列と行を削除し始めました.それでも同じ問題がありました.列が機能するパネルグリッドを使用し、各行をその部分にコピーし始めました.とテスト、最初に一度に1つの列を追加してテストしたところ、機能しました。最初のコードの問題はまだわかりません。実質的に同じです。

于 2013-06-15T21:50:51.013 に答える