0

我有一个 dataTable 在通过正常(非 ajax)请求/响应周期呈现时按需要工作。

我定义了一个样式,将背景颜色和填充应用于表中的第一行:

.myTable tr:first-child td {
  padding-top: 25px;
  background-color: yellow;
}

正如我上面提到的,当通过典型的请求/响应加载时,填充和背景颜色看起来很完美。但是,有一些操作可能会导致此表通过 AJAX 重新呈现。发生这种情况时,表会正确重新加载(它是数据),但不会重新应用上述样式。

由于在使用 dataTable 组件时没有办法专门为第一行分配一个 CSS 类。所以,我使用上面的 CSS 选择器来获取第一行。以前有没有人处理过这样的问题?我唯一的选择是尝试在 ALL 的 oncomplete 中使用 jQuery...可能有很多不同的地方...可以触发重新渲染表的操作?

我的问题是,为了速度,我试图避免使用richfaces 表格组件,我需要让表格可以滚动。因此,我使用浏览器特定的 CSS 解决方案来 srcoll 表格正文并保持标题静态。主要的问题是我需要表格的第一行有一个顶部填充值,将其向下推到表格标题的固定位置下方。

4

1 回答 1

2

由于您只重新呈现数据表,因此应用了表的默认样式。

您还必须与 dataTable 一起重新渲染样式代码,这可能会解决您的问题。

尝试类似下面的代码并重新渲染 outputPanel 而不是 dataTable:

<a4j:outputPanel>
    <h:dataTable>
            //Data
    </h:dataTable>
    <style>
       .myTable tr:first-child td {
          padding-top: 25px;
          background-color: yellow;
        }
    </style>
</a4j:outputPanel>
于 2011-02-01T07:18:51.977 回答