【发布时间】:2015-12-23 10:08:45
【问题描述】:
我正在使用 PrimeFaces 5.1,在我的页面中,我需要通过表达式的 dataTable 宽度,因为 p:columns 设置 dataTable 的列具有更大的 400px 设置 auto otherWise 设置宽度 400px;
<p:dataTable id="cars" var="car" value="#{dtColumnsView.cars}"
widgetVar="carsTable" filteredValue="#{dtColumnsView.filteredCars}"
style="width:expression(this.Width >400 ?'auto':'400px')">
<p:columns value="#{dtColumnsView.columns}"
var="column" columnIndexVar="colIndex"
sortBy="#{car[column.property]}" filterBy="#{car[column.property]}">
..........
</p:columns>
</p:dataTable>
我需要通过下面的表达式设置宽度,宽度表达式不起作用?
【问题讨论】:
-
this是什么?你在哪里使用 EL 符号 (#{})?它似乎都不是 JavaScript 函数。它是我可能不知道的 HTML 5 或 JSFpassthrough的增强语法吗?简单地说“不工作”然后永远保持沉默无助于解决问题。 -
尝试使用
style="min-width: 400px;"。 -
@Tiny:它被称为 CSS 表达式。这是 90 年代 MSIE 专有的东西,在现代 Web 开发中应该不惜一切代价避免。另见stackoverflow.com/questions/6191679/css-expressions 和google.com/search?q=css+expression。在这种特定情况下,OP 应该使用
@media查询和/或max-width/min-width代替。@media存在很长时间,但很多初学者完全不知道它如何用于响应式设计,而min-width/max-width是“仅”在 CSS2 中引入的(1998 年已经存在,自 2000 年以来成为主流)。
标签: jsf primefaces