【问题标题】:Prevent p:dataTable from shrinking too much when empty防止 p:dataTable 为空时收缩太多
【发布时间】:2022-01-08 01:26:35
【问题描述】:

我使用 Primefaces DataTable 来显示一些数据。我还允许过滤和排序。在 Internet Explorer 中,将过滤器设置为不返回任何结果的值(空表)会使表缩小太多并出现滚动条:

这当然很丑。在所有其他浏览器中,它工作得非常好。所以这可能是我使用的 Internet Explorer 或 Primefaces 版本的问题,但改变这些并不是一个真正的选择。

我可能需要一些 CSS 恶作剧来解决这个问题。我尝试使用 height/width 和 min-height/min-width 以及 p:dataTable 的 scrollWidth / scrollHeight 和可滚动属性,但这并没有成功。

有什么建议吗?

编辑: 使用 Primefaces 6.2.17、Internet Explorer 21H1

【问题讨论】:

  • “这可能是我使用的 Internet Explorer 或 Primefaces 版本的问题”,如果没有这些信息,我们不能说它是。您是否尝试过 PF 11.0.0-RC2?
  • 我添加了PF和IE的版本号。正如我所写,升级它并不是一个真正的选择,我非常想寻找一些快速而肮脏的 CSS 解决方法。
  • 我在这种情况下共享呈现的 HTML
  • 试图决定要发布 HTML 的哪一部分让我偶然发现了问题的解决方案,谢谢 :)

标签: html css jsf primefaces


【解决方案1】:

查看呈现的 HTML 时,我注意到 <div> 内部呈现的数据表 (<div class="ui-datatable-tablewrapper">) 具有以下 CSS 集:

.ui-datatable-tablewrapper {
    overflow: auto;
}

在我的 .css 文件中将其设置为 overflow: visible; 解决了我的问题:

【讨论】:

  • oncomplete 是一种非常规的 CSS 设置方式。为什么不创建自定义样式表?
  • 把 .ui-datatable-tablewrapper { overflow: auto; } 在它自己的 .css 文件中(或进入 jsf style="" 属性)没有效果。我认为它总是被数据表覆盖。添加 !important 也没有成功,这就是我使用 ajax 事件的原因
  • 谢谢!现在它可以在没有 p:ajax 元素的情况下工作,我已经相应地更新了我的答案
猜你喜欢
  • 2015-05-23
  • 2014-10-29
  • 1970-01-01
  • 2021-10-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-02
  • 2012-08-05
相关资源
最近更新 更多