数据表阻止了行的可选择性



我有一个数据表项目:

var datatablesobject = $('#live_table').DataTable( {
"columns": [ {
data: null,
defaultContent: '',
orderable: false,
className: 'select-checkbox',
targets:   0
},
{ data: "status", orderable: false },
{ data: "serial" },
{ data: "version" }
],
select: {
style:    'multi'
},
} );

我希望version < 1的行变灰,并防止用户进行选择。我知道数据表有一个selector:方法,如本线程中所述,但我不确定这是正确的方法:

select: {
style:    'os',   //default but you have to specify it, no idea why
selector: 'tr:not(.no-select) td'
}

这意味着,如果我理解正确的话,我只需在检查之前向div类添加一个"no select"id。有没有更简单的方法?此外,我如何使用它来为我刚刚根据参数取消选择的线涂上不同的颜色?

我找到了一个createdRow方法的例子,但作为一个jQuery noob,我不确定如何将其应用于我的datatablesobject

这里的好方法是什么?

编辑:我现在试图包括第一个答案,但数据表的选择不能像我尝试的那样调用:

var datatablesobject = $('#live_table').DataTable( {
"columns": [ {
data: null,
defaultContent: '',
orderable: false,
className: 'select-checkbox',
targets:   0
},
{ data: "status", orderable: false },
{ data: "serial" },
{ data: "version" }
],
"createdRow": function(row, data, dataIndex) { 
if (data["version"] < 3) {
$(row).css("color", "red"),
// style multi for multiselect does not work
select: {
style:    'multi'        
};
} else {
$(row).css("color", "grey");
} },

order: [[ 1, 'asc' ]],

我还没有测试过。但请尝试一下这段代码。您可以使用createRow添加一个类。data[2]表示版本,data[1]表示串行等等。

var datatablesobject = $('#live_table').DataTable( {
"columns": [ {
data: null,
defaultContent: '',
orderable: false,
className: 'select-checkbox',
targets:   0
},
{ data: "status", orderable: false },
{ data: "serial" },
{ data: "version" }
],
"createdRow": function( row, data, dataIndex ) {
if ( data[2] < 1 ) {        
$(row).addClass('red');
}
},
select: {
style:    'multi'
},});

最新更新