我有三个下拉列表<h:selectOneMenu>
和一个<p:dataTable>
。我希望三个下拉列表与dataTable并排。正如我现在所知,三个下拉列表位于dataTable之上。我尝试创建更大的表并将三个下拉列表放在一列中,并将<h:dataTable>
放在另一列中以获得并排布局,但它不起作用。这是我到目前为止所得到的
<h:selectOneMenu id="customer" value="#{DMBackingBean.customer}">
<f:selectItem itemLabel="Select Customer" itemValue="" />
<f:selectItems value="#{DMBackingBean.customers}"/>
<p:ajax actionListener="#{DMBackingBean.handCustomerChange}" update="facility" event="change"/>
</h:selectOneMenu>
<br/><br/>
<h:selectOneMenu id="facility" value="#{DMBackingBean.facility}">
<f:selectItem itemLabel="Select Facility" itemValue=""/>
<f:selectItems value="#{DMBackingBean.facilities}"/>
</h:selectOneMenu>
<br/><br/>
<h:selectOneMenu id="project" value="#{DMBackingBean.project}">
<f:selectItem itemLabel="Select Projet" itemValue=""/>
<f:selectItems value="#{DMBackingBean.projects}"/>
</h:selectOneMenu>
<p:dataTable var="item" value="#{DMBackingBean.drawings}" selection="#{DMBackingBean.selectedDrawing}" selectionMode="single">
<p:column>
<f:facet name="header">
<h:outputText value="DrawingType"/>
</f:facet>
<h:outputText value="#{item.drawingType}"/>
</p:column>
...
</p:dataTable>
答案 0 :(得分:2)
两种方式:
创建h:panelGrid
并将下拉列表放在一个h:panelGroup
中。 h:panelGrid
呈现HTML <table>
元素,每个子元素都位于自己的<td>
元素中。
<h:panelGrid columns="2">
<h:panelGroup>
<h:selectOneMenu>...</h:selectOneMenu>
<h:selectOneMenu>...</h:selectOneMenu>
<h:selectOneMenu>...</h:selectOneMenu>
</h:panelGroup>
<h:dataTable>...</h:dataTable>
</h:panelGrid>
将下拉列表包裹在<h:panelGroup layout="block">
中,它将呈现HTML <div>
元素。然后在float:left;
和<h:panelGroup>
上使用CSS <h:dataTable>
。
<h:panelGroup layout="block" styleClass="left">
<h:selectOneMenu>...</h:selectOneMenu>
<h:selectOneMenu>...</h:selectOneMenu>
<h:selectOneMenu>...</h:selectOneMenu>
</h:panelGroup>
<h:dataTable styleClass="left">...</h:dataTable>
与
.left { float: left; }