【问题标题】:primefaces columns disappear on a panelgridprimefaces 列在面板网格上消失
【发布时间】:2013-06-12 06:03:34
【问题描述】:

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

这里是代码

<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 并且列再次丢失。

【问题讨论】:

    标签: jsf jsf-2 primefaces


    【解决方案1】:

    您在通用 jsf 组件和 primefaces 组件之间搞混了。在您的示例中,您使用的是&lt;h:panelGrid&gt;。如果你把它改成&lt;p:panelGrid&gt; 就可以了

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        【解决方案3】:

        尝试删除所有&lt;p:row&gt;&lt;p:column&gt; 并设置&lt;h:panelGrid&gt; 中的列数。请注意,columns 属性将自动构建 HTML 表,以便在 HTML 术语中每个&lt;tr&gt; 9 中都有一个带有四个&lt;td&gt; 元素的&lt;table&gt;

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

        另一个建议:您的&lt;h:panelGrid&gt; id 不应该是formXxx,而是使用更有意义的名称,例如pnlXxx,并让form 前缀为&lt;h:form&gt; 标签。

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

        【讨论】:

        • 我知道,我以前也这样设置过,但我需要 colspan 这就是我使用行和列的原因
        • 因为我已经有一个面板网格,我想我只需要添加行和列,反正它已经修复了,谢谢
        猜你喜欢
        • 2013-05-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-04-16
        • 2023-03-24
        • 1970-01-01
        相关资源
        最近更新 更多