数据表:如何将类设置为表行单元格(但不是表标题单元格!
DataTables: How to set classes to table row cells (but not to table header cells!)
我的桌子风格非常好。
{对不起链接不再工作}
我必须添加 sClass,以便新行(由 fnAddData 添加)获得正确的类。
不幸的是,这破坏了我的布局,因为这些类也被添加到我的表头单元格中!
{对不起链接不再工作}
如何将sClass配置为仅申请TBODY细胞?
澄清一下:
var rolesTable = $('#roles').dataTable({
"aoColumns": [
{ "mDataProp": "id", "sClass": "avo-lime-h avo-heading-white" },
{ "mDataProp": "name", "sClass": "avo-light" },
{ "mDataProp": "module", "sClass": "avo-light" },
{ "mDataProp": "description", "sClass": "avo-light" },
{ "mDataProp": null, "bSearchable": false, "bSortable": false,
"sDefaultContent": '<button type="button" name="add" class="btn"><i class="icon-plus icon-white"></i></button>' },
],
}); // end od dataTable
这样当我打电话时
rolesTable.fnAddData( {
"id": 10,
"name": "testname",
"module": "testmodule",
"description": "testdescription"
} );
然后添加的行如下所示:
<tr>
<td class="avo-lime-h avo-heading-white">10</td>
<td class="avo-light">testname</td>
<td class="avo-light">testmodule</td>
<td class="avo-light">testdescription</td>
<td></td>
</tr>
这完全没问题
**问题是 ** 此设置还会将这些类添加到:
<thead>
<tr> (...) </tr>
</thead>
表头细胞...我不想要的
我的问题的解决方案是:使用 fnRowCallback 而不是 sClass 将类设置为新行。
var rolesTable = $('#roles').dataTable({
"aoColumns": [
{ "mDataProp": "id" },
{ "mDataProp": "name" },
{ "mDataProp": "module" },
{ "mDataProp": "description" },
{ "mDataProp": null, "bSearchable": false, "bSortable": false,
"sDefaultContent": '<button type="button" name="add" class="btn btn-round"><i class="icon-plus icon-white"></i></button>' },
],
"fnRowCallback": function( nRow, aData, iDisplayIndex, iDisplayIndexFull ) {
$('td:eq(0)', nRow).addClass( "avo-lime-h avo-heading-white" );
$('td:eq(1),td:eq(2),td:eq(3)', nRow).addClass( "avo-light" );
}
}); // end od dataTable
由于您只使用 sClass 将样式应用于表格,因此解决问题的简单方法是修改 CSS 本身以仅应用于 td 元素。
旧的 CSS 样式:
.avo-light {
color: blue;
}
新的 CSS 样式:
td.avo-light {
color: blue;
}
这样,CSS 只会影响您有兴趣应用样式的单元格,尽管 sClass 也应用于 th 元素。
我意识到这个问题有点老了,但我发现它比最佳解决方案更具模块化。
之前设置默认类。
$.fn.dataTableExt.oStdClasses.sStripeOdd = '';
$.fn.dataTableExt.oStdClasses.sStripeEven = '';
有关更多参考,请参见此处http://www.datatables.net/styling/custom_classes
let table = $("#myTable").dataTable();
table.rows().every(function(rowIdx, tableLoop, rowLoop){
$(this.node().cells[0]).addClass('red');
$(this.node().cells[1]).addClass('blue');
}
呈现表后,使用每行的 JavaScript 选择器遍历所有行,并进行所需的任何更改。这解决了gamliela在loostr的回答中提出的性能问题。DataTables rows().every() 文档
相关文章:
- 使用jquery在单击时在单元格中输入值
- CSS-若窗口太小,滚动条会出现在“表格”单元格上
- 单元格的工具提示或标题不显示超过2000个字符
- 如何阻止用户删除handontable中标题行中的单元格
- 如何在 React 中将 html 表单元格数据动态插入到具有动态标题的表中
- 在具有行标题和列标题的表中,给定列标题文本和单元格文本,如何选择单元格(td)
- 数据表:如何将类设置为表行单元格(但不是表标题单元格!
- 通过单击任何单元格或表格数据及其左侧和顶部标题进行查找
- 根据垂直和水平标题突出显示表格单元格
- 如何在网格数据绑定为动态时为 jqgrid 单元格设置自定义标题
- Kendo UI网格-单元格上的标题属性
- 突出显示带有标题的表格单元格
- 突出显示跨2个单元格的标题下方的单元格
- 当单击表标题时,更改表标题下所有单元格的颜色
- 如何显示鼠标悬停标题单元格的工具提示?
- 如何在拖放单元格内容时获取标题单元格名称
- 当向下滚动页面时,粘性表格标题单元格
- 光滑网格自定义单元格标题
- 给定单元格的行号和列号的行标题值
- 根据列标题文本选择列中的表单元格