【问题标题】:Primefaces dataTable width set through expressionPrimefaces dataTable宽度通过表达式设置
【发布时间】: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 或 JSF passthrough 的增强语法吗?简单地说“不工作”然后永远保持沉默无助于解决问题。
  • 尝试使用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


【解决方案1】:
<p:dataTable id="cars" var="car" value="#{dtColumnsView.cars}" 
widgetVar="carsTable" filteredValue="#{dtColumnsView.filteredCars}" 
style="width:400px;text-align: center;margin: 0 auto;">  

使用这种风格就可以了

【讨论】:

    猜你喜欢
    • 2012-06-23
    • 2014-05-05
    • 1970-01-01
    • 1970-01-01
    • 2012-05-02
    • 2019-11-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多