primefaces列在panelgrid上消失

时间:2013-06-15 21:16:20

标签: jsf jsf-2 primefaces

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

这是代码

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

3 个答案:

答案 0 :(得分:2)

你在一般的jsf组件和primefaces组件之间混淆了。在您的示例中,您使用的是<h:panelGrid>。如果将其更改为<p:panelGrid>,则可以正常工作

答案 1 :(得分:0)

尝试删除所有<p:row><p:column>并设置<h:panelGrid>中的列数。请注意,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> 个元素。

<h:panelGrid>

另一个建议:您的formXxx ID不应该pnlXxx而是使用更有意义的名称,例如form,并<h:form>标记为<p:panelGrid>标记

由于它看起来你想使用colspan / rowspan,你应该寻求这里提出的解决方案:How to set colspan and rowspan in JSF panelGrid?。由于您使用的是PrimeFaces,因此您应该使用{{1}}。

答案 2 :(得分:0)

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