0

我不知道为什么,但是我在面板网格上设置的列会合并,就好像它们只是一列一样,

这是代码

<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>

每行只有一列,我将示例复制粘贴到页面上并且它可以工作,然后我将一些行复制到我的 panelgrid 并且列再次丢失。

4

3 回答 3

2

您在通用 jsf 组件和 primefaces 组件之间搞混了。在您的示例中,您使用的是<h:panelGrid>. 如果您将其更改为<p:panelGrid>它将起作用

于 2013-06-17T15:15:42.263 回答
0

我真的不知道问题出在哪里,我开始删除所有列和行,直到我有一行和两列我仍然遇到同样的问题我使用了一个带有列的面板网格,并开始将每一行复制到那个部分和测试,我当时在第一列添加并测试,他们工作。我仍然没有看到我的初始代码有问题,它实际上是一样的。

于 2013-06-15T21:50:51.013 回答
0

尝试删除所有这些<p:row><p:column>设置<h:panelGrid>. 请注意,该columns属性将自动构建 HTML 表,以便每9 英寸 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>

另一个建议:你的<h:panelGrid>id 不应该formXxx使用更有意义的名称pnlXxx,比如让标签的form前缀。<h:form>

既然看起来你想使用 colspan / rowspan,你应该寻求这里提出的解决方案:How to set colspan and rowspan in JSF panelGrid? . 由于您使用的是 PrimeFaces,因此您应该<p:panelGrid>改用。

于 2013-06-15T21:20:40.810 回答