Javascript 更改drawCallback DataTables中行的背景
如何更改drawCallback中单元格中具有特定值的行的背景Javascript 更改drawCallback DataTables中行的背景,javascript,jquery,datatable,Javascript,Jquery,Datatable,如何更改drawCallback中单元格中具有特定值的行的背景 $(table_id).DataTable({ //... "drawCallback": function (settings) { // here for each row, if row['type'] != "" then row.bgcolor ="yellow" }, 这是呈现我的表的完整代码段: $(table_id).DataTable({
$(table_id).DataTable({
//...
"drawCallback": function (settings) {
// here for each row, if row['type'] != "" then row.bgcolor ="yellow"
},
这是呈现我的表的完整代码段:
$(table_id).DataTable({
"order": [[0, "desc"]],
serverSide: true,
"processing": true,
rowId: 'MessageID',
ajax: {
url: '/Controller/myRoute',
type: 'POST',
data: {table_id: table_id},
},
"initComplete": function( settings, json ) {
},
"createdRow": function (row, data, index) {
console.log("data is" + data);
},
columns: [
{
data: "Date",
"sortable": true,
"render": function (data) {
var formatted = data;
if (data.indexOf("/Date(") !== -1) {
var date = new Date(parseInt(data.replace("/Date(", "").replace(")/", ""), 10));
formatted = date.toString('dd/MM/yyyy HH:mm:ss');
}
return formatted;
}
},
{ data: "Message_id"},
{ data: "From_id"},
{ data: "Message_text" },
]
});
}
});
在/Controller/MyRoute中,我有一段代码,可以从数据库中检索10个对象,并将它们作为JSON返回。我在另一个回调中使用以下解决方案: JavaScript:
"createdRow": function (row, data, index) {
if (data.type !== '') {
$(row).addClass('colored-row');
}
}
然后使用css设置样式:
.colored-row{background-color:yellow;}
使用
createdRow
回调:
$(文档).ready(函数(){
$(“#示例”).dataTable({“sPaginationType”:“完整的数字”,
“createdRow”:函数(tr、TDSCOContent){
如果(TDS内容[4]='A'){
tr.style.backgroundColor='红色';
}
}});
});代码>
行颜色
渲染引擎
浏览器
月台
引擎版本
CSS等级
三叉戟
互联网
浏览器4.0
赢得95分+
4.
X
三叉戟
互联网
浏览器5.0
赢得95分+
5.
C
三叉戟
互联网
探索者5.5
赢得95分+
5.5
A.
三叉戟
互联网
探险家6
赢98+
6.
A.
急板地
歌剧7.0
Win 95+/OSX.1+
-
A.
急板地
歌剧7.5
Win 95+/OSX.2+
-
A.
急板地
歌剧8.0
Win 95+/OSX.2+
-
A.
急板地
歌剧8.5
Win 95+/OSX.2+
-
A.
急板地
歌剧9.0
Win95+/OSX.3+
-
A.
急板地
歌剧9.2
Win 88+/OSX.3+
-
A.
急板地
歌剧9.5
Win 88+/OSX.3+
-
A.
急板地
Wii的歌剧
Wii
-
A.
急板地
诺基亚N800
N800
-
A.
急板地
任天堂DS浏览器
任天堂
8.5
C/A1
KHTML
Konqurer 3.1
KDE 3.1
3.1
C
KHTML
孔奎罗3.3
KDE 3.3
3.3
A.
KHTML
孔奎罗3.5
KDE 3.5
3.5
A.
塔斯曼
Internet Explorer 4.5
Mac OS 8-9
-
X
塔斯曼
Internet Explorer 5.1
Mac OS 7.6-9
1.
C
塔斯曼
Internet Explorer 5.2
Mac OS 8-X
1.
C
杂项
NetFront 3.1
嵌入式设备
-
C
杂项
NetFront 3.4
嵌入式设备
-
A.
杂项
迪洛0.8
嵌入式设备
-
X
杂项
链接
纯文本
-
X
杂项
猞猁
纯文本
-
X
杂项
IE手机
Windows Mobile 6
-
C
杂项
PSP浏览器
PSP
-
C
其他浏览器
所有其他
-
-
U
我知道这篇文章已经有几年历史了。但我也在寻找解决方案,在这里偶然发现了。我能找到答案,我想和大家分享我的答案
$(table_id).DataTable({
//...
"drawCallback": function (e) {
var api = this.api();
for (var i = 0; api.rows().count() > i; i++) {
var rowData = api.row(i).data();
var rowNode = api.row(i).node();
var cellNode = api.cell(i, 1).node(); // Can apply same logic to just a cell
// want specific cell to be bolded or some other style --cell(row, column)
if (rowData.type != "") {
$(rowNode).addClass("row-attention");
$(cellNode).addClass("cell-attention");
} else { // remove the class in case it was previously added
$(rowNode).removeClass("row-attention");
$(cellNode).removeClass("cell-attention");
}
}
},
和下面的样式。我个人需要这个!重要但可能不需要,这取决于样式表的顺序
.row-attention {
background-color: #FFFF00 !important;
}
.cell-attention {
font-weight: bold;
}
嘿,Gudz,我必须在drawCallback中执行此操作,因为我的datatable使用ajax检索数据服务器端,每次添加新行时,我都会触发表上的ajax.reload,并为我检索到的所有行调用createdRow回调,这不是我试图实现的行为……我需要在绘制表后运行一些东西,以便突出显示具有特定值的行……您能用ajax提供代码片段吗例子?我确信有一种方法可以使用createdRow
回调,方法是将ajax调用移动到另一个地方或类似的地方