我不知道为什么但是我在面板网格上设置的列被合并,好像它们只是一列一样,
这是代码
<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并且列再次丢失。
答案 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列我仍然有同样的问题我使用了一个有效的列的面板网格,并开始只是复制每一行对于那部分和测试,我在当时首先添加了一列并进行了测试,并且他们工作了。我仍然没有看到我的初始代码的问题,它实际上是相同的。