数据表:如何添加自定义服务器端样式


Datatables: How to add custom server-side styling?

我在一个简单的HTML表上使用数据表。这个表是由我的PHP脚本在服务器端构建的。

所以我只是建立一个'table'元素,其中有' head'和'tbody',并在页面加载后将数据表应用到table元素。

以前(在使用数据表之前),我可以通过为行、单元格等设置特定的类来定制表的样式。

然而,当指定自定义类时,例如:

<tr class='MyCustomClass'>

在应用数据表时被覆盖。

是否有一个数据表的设置,将包括我的自定义类?阅读文档有很多的样式选项在数据表中,但据我所知,这些都是javascript函数必须执行客户端,所以如果这些是我的样式数据表的唯一选择,这将是相当困难的实现服务器端样式取决于给定的行,单元格等的内容…

编辑

的例子:

  • OK:表(没有数据加载器),第二行标记为红色:http://jsfiddle.net/HEDvf/1164/
  • 不确定:加载了数据表的同一表,第二行周围没有红色边框:http://jsfiddle.net/HEDvf/1163/

注意,在这两个例子中,html源表都有"style='border-color: red;border-style: solid"在第二个'tr'元素中,但是当在这个表上加载数据时,红色边框是不可见的

所以你是动态加载HTML表吗?如果你要"回显"结果,你应该把内联css属性和echo语句放在一起。

echo "<tr style='border:1px solid red>'" . $row['myRow'] . "</tr>";

在您的示例中显示"Not OK",看起来样式被维护了。它不在第二行,但是它在 Trident Internet Explorer | 5.0 | Win 95+ | 5 | C行附近,如果你去到第5页。

数据表按"渲染引擎"列排序结果,将三叉戟推到第5页。

覆盖与数据表冲突的样式可能不容易,但看起来可以应用类和内联样式。请看这里更新的例子,我重写了字体样式和背景颜色。

到目前为止,您可能已经找到了一些方法来满足您的需求,但是datatable并不一定反对让您添加自己的样式。

我已经这样做了,这是一个例子,如果基于他,我说当列3等于列4时将在<tr>中添加一个名为'red'的类

的例子:

"fnRowCallback": function( nRow, aData, iDisplayIndex, iDisplayIndexFull ) {                
    if ( aData[3] != aData[4]){
        jQuery(nRow).addClass('red');
    }               
},
http://www.datatables.net/forums/discussion/2025/fnrowcallback-and-fnupdate