我希望p:selectOneMenu宽度是自动的,相对于父单元格,而不是它所拥有的值。
<p:panelGrid>
<p:row>
<p:column><p:outputLabel value="Value01" for="idInput01"/></p:column>
<p:column><p:inputText value="#{bean.input01}" id="idInput01" /></p:column>
<p:column><p:outputLabel value="Value02" for="idSelect" /></p:column>
<p:column>
<p:selectOneMenu value="#{bean.selectedObject}" id="idSelect" converter="objectConverter">
<f:selectItems value="#{bean.objectsList}" var="varObject" itemLabel="#{varObject.label}" itemValue="#{varObject}" />
</p:selectOneMenu>
</p:column>
</p:row>
</p:panelGrid>我得到了什么:

我所期待的:

注意:我不想指定一个固定的宽度.
发布于 2013-05-29 07:01:12
i凌驾 .ui-selectonemenu, .ui-selectonemenu-label到:
.ui-selectonemenu{
width: 100% !important;
}
.ui-selectonemenu-label{
width: 100% !important;
} 发布于 2016-08-04 19:46:14
我的解决方案:autoWidth=“假”
发布于 2013-05-28 07:14:07
我发现的唯一方法是在加载时使用jQuery初始化宽度。
您可以简单地创建这样一个CSS类(仅用作futur 选择器):
.full-width
{
}并将其添加到组件中:
<p:selectOneMenu value="#{bean.selectedObject}" id="idSelect" converter="objectConverter" styleClass="full-width">
<f:selectItems value="#{bean.objectsList}" var="varObject" itemLabel="{varObject.label}" itemValue="#{varObject}" />
</p:selectOneMenu>由于您将需要jQuery,所以如果您还没有使用使用它的PrimeFaces组件,则应该将其添加到h:head中。
<h:outputScript library="primefaces" name="jquery/jquery.js" />下面是在选择器中初始化所有p:selectOneMenu的小脚本:
<script>
$(document).ready(
function()
{
$("div.ui-selectonemenu.full-width").each(
function()
{
$(this).css("width",$(this).parent().width());
}
);
}
);
</script>https://stackoverflow.com/questions/16784460
复制相似问题