这可能是一个CSS问题,但我自己无法理解这个原因。
我经常发现一些选择行为与图片中的一样:
下拉字段已“覆盖”。 然后我点击它,选择一个值......它开始正确显示。
我正在使用Cupertino主题。
如果我分析生成的来源,这就是我找到的内容:
<div class="ui-helper-hidden-accessible">
<input id="carrello:formCarrello:j_idt165_focus" name="carrello:formCarrello:j_idt165_focus" type="text">
</div>
<label id="carrello:formCarrello:j_idt165_label" class="ui-selectonemenu-label ui-inputfield ui-corner-all" style="width: 0px;">
Seleziona...
</label>
标签有“width:0px;”。如果我将其删除,菜单会正确显示。
好但是......我没有添加该属性。为什么Primefaces会添加它?
修改
第一个菜单的来源:
<p:selectOneMenu value="#{posController.rigaVendita.codiceIva}" effect="fade" converter="codiceIvaConverter">
<f:selectItem itemLabel="Seleziona..." itemValue="" />
<f:selectItems value="#{posController.codiciIva}" var="ci" itemLabel="#{ci.codice}" itemValue="#{ci}" />
</p:selectOneMenu>
所有浏览器都存在同样的问题。 它不是css兼容性问题,故障是“0px”宽度属性!
答案 0 :(得分:1)
好的,我终于找到了造成这个错误的原因!
我在selectOneMenu标签上遇到了同样的问题。 这是因为我使用了默认的前向页面导航,这就是为什么在某些页面组件工作而不在其他页面中的原因 实际上,当网址与网页不匹配时,它无法正常工作。
解决方案:在commandLink或commandButton的action属性中使用“?faces-redirect = true”连接视图ID
这可以提供帮助:
PrimeFaces谷歌地图组件<p:gmap>
出现同样的问题,如果你想使用它还需要使用重定向
(还有一个问题:如果你使用模板,你必须放
template.xhtml中的<script src="http://maps.google.com/maps/api/js?sensor=false" type="text/javascript"></script>
,请参阅(primefaces GMmap inside a dialog not rendering))
修改强>
显然没关系: PrimeFaces不支持ajax请求中的基于前向的导航,您需要重定向或将ajax设置为false。 http://primefaces.org/faq.html
答案 1 :(得分:0)
我遇到了同样的问题。我想这是一个表面错误。我的解决方案是覆盖该元素的零宽度 - 只需将此代码添加到CSS文件中:
.ui-selectonemenu-label{
width: 100%!important;
}
答案 2 :(得分:0)
我遇到了同样的问题,解决方案包括在这种情况下编写selectOneMenu的css,对应两个选择器,如下所示:
.ui-selectonemenu .ui-selectonemenu-trigger{
width: auto !important;
padding-top: 0.4em;
}
.ui-selectonemenu{
padding-right: 0px !important;
}