什么决定了 jquery 数据表样式中的行颜色?

Posted

技术标签:

【中文标题】什么决定了 jquery 数据表样式中的行颜色?【英文标题】:What determines row color in jquery datatable styles? 【发布时间】:2013-09-09 20:05:46 【问题描述】:

在 jquery 数据表样式(这里是平滑度)中,它以不同的颜色显示行。 是什么决定了每行显示哪些颜色?我该如何改变呢? 从下载包中的示例中查看下面的示例。

【问题讨论】:

它应该在文档中...datatables.net/styling 显然与这个 td.sorting_1, td.sorting_2, td.sorting_3 datatables.net/release-datatables/examples/advanced_init/… 有关。但我没有弄清楚。我希望你们中的一些人有? 颜色由最后一列的值决定。但是我找不到在 html 或 css 中指定最后一列是颜色源的位置。有什么想法吗? 【参考方案1】:

啊哈……我找到了答案。 在来自服务器表行的原始 html 文档中,其类设置不同,具体取决于最后一列中的数据,例如:

<tr class="gradeC">

然后,您可以在 datatable() 函数完成其工作后查看生成的 html。它向类字符串添加偶数或奇数。喜欢

<tr class="gradeC odd">

当您对列进行排序时,排序函数会在该列中的单元格上的类字符串中添加一个“sorting_1”。

所有颜色都在css文件中设置如下:

/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
 * DataTables row classes
 */
table.display tr.odd.gradeA  background-color: #ddffdd; 
table.display tr.even.gradeA  background-color: #eeffee; 
table.display tr.odd.gradeA  background-color: #ddffdd; 
table.display tr.even.gradeA  background-color: #eeffee; 
table.display tr.odd.gradeC  background-color: #ddddff; 
table.display tr.even.gradeC  background-color: #eeeeff; 
table.display tr.odd.gradeX  background-color: #ffdddd; 
table.display tr.even.gradeX  background-color: #ffeeee; 
table.display tr.odd.gradeU  background-color: #ddd; 
table.display tr.even.gradeU  background-color: #eee; 

tr.odd  background-color: #E2E4FF; 
tr.even  background-color: white; 

tr.odd.gradeA td.sorting_1  background-color: #c4ffc4; 
tr.odd.gradeA td.sorting_2  background-color: #d1ffd1; 
tr.odd.gradeA td.sorting_3  background-color: #d1ffd1; 
tr.even.gradeA td.sorting_1  background-color: #d5ffd5; 
tr.even.gradeA td.sorting_2  background-color: #e2ffe2; 
tr.even.gradeA td.sorting_3  background-color: #e2ffe2; 
tr.odd.gradeC td.sorting_1  background-color: #c4c4ff; 
tr.odd.gradeC td.sorting_2  background-color: #d1d1ff; 
tr.odd.gradeC td.sorting_3  background-color: #d1d1ff; 
tr.even.gradeC td.sorting_1  background-color: #d5d5ff; 
tr.even.gradeC td.sorting_2  background-color: #e2e2ff; 
tr.even.gradeC td.sorting_3  background-color: #e2e2ff; 
tr.odd.gradeX td.sorting_1  background-color: #ffc4c4; 
tr.odd.gradeX td.sorting_2  background-color: #ffd1d1; 
tr.odd.gradeX td.sorting_3  background-color: #ffd1d1; 
tr.even.gradeX td.sorting_1  background-color: #ffd5d5; 
tr.even.gradeX td.sorting_2  background-color: #ffe2e2; 
tr.even.gradeX td.sorting_3  background-color: #ffe2e2; 
tr.odd.gradeU td.sorting_1  background-color: #c4c4c4; 
tr.odd.gradeU td.sorting_2  background-color: #d1d1d1; 
tr.odd.gradeU td.sorting_3  background-color: #d1d1d1; 
tr.even.gradeU td.sorting_1  background-color: #d5d5d5; 
tr.even.gradeU td.sorting_2  background-color: #e2e2e2; 
tr.even.gradeU td.sorting_3  background-color: #e2e2e2; 

【讨论】:

【参考方案2】:

在这种情况下,使用以下类应用特定颜色。 gradeAgradeBgradeC 等。我不确定它们是否以某种方式动态生成,或者它们是否使用了 jQuery Theme Roller。我假设他们使用主题滚轮来生成样式。无论如何..您需要做的就是使用自定义类选项将类添加到您的表中。

请看这里: https://datatables.net/styling/custom_classes

然后从那里你应该能够做这样的事情:

oTable = $('#example').dataTable(   
    "aoColumns" : [     
          sClass: "myCustomClass"   
    ]);

-和-

table.display tr.even.myCustomClass  background-color: #ffdddd; 
table.display tr.odd.myCustomClass  background-color: #ffeeee; 

这是一个有点类似的问题:

Giving custom classes to each TD for styling - Datatables & jQuery

这是一个带过滤器的:

datatables add class to filters

【讨论】:

以上是关于什么决定了 jquery 数据表样式中的行颜色?的主要内容,如果未能解决你的问题,请参考以下文章

如何根据值更改jquery dataTable中的行颜色

如何根据数据对 MVCContrib 网格中的行进行样式设置?

jQuery获取CSS样式中的颜色值的问题,不同浏览器格式不同的解决办法

如何根据Sencha ExtReact中网格的行数改变行背景颜色?

基于从 MySQL 数据库更改 ID 的行颜色

用jquery怎么检索表格里的内容与文本输入框的里内容是不是相等,相等的话数据所在的行变颜色显示