我有一个使用AJAX的jQuery数据表。我想在一列中有两个字段,并且还使用两个字段的if语句。
我可以一起做两个领域:
{
"data" : function (data, type, dataToSet) {return data.primary + "<br/>" + data.proctor;
}},
我根据if语句添加了一些样式:
{
"data" : "primary",
"render" : function(primary) {
if (!primary) {
return '<i class="fa fa-ban"></i> primary';
} else {
return '<i style="color: green" class="fa fa-check"></i> primary';
}
}
},
{
"data": "proctor",
"render": function (proctor) {
if (!primary) {
return '<i class="fa fa-ban"></i> proctor';
} else {
return '<i style="color: green" class="fa fa-check"></i> proctor';
}
}
},
如何将两个字段组合成一列并仍然具有if / else语句?
答案 0 :(得分:2)
您可以通过添加null
列并使用自己的render
方法来合并这两个字段:
columns: [
...
{ data: null,
render: function(data, type, full) {
var ret = '';
if (!full.primary) {
ret += '<i class="fa fa-ban"></i> primary';
} else {
ret += '<i style="color: green" class="fa fa-check"></i> primary';
}
if (!full.proctor) {
ret += '<i class="fa fa-ban"></i> proctor';
} else {
ret += '<i style="color: green" class="fa fa-check"></i> proctor';
}
return ret;
}
}
]
顺便说一句:我认为在这种情况下,ternarys会比if..else
更好。至少更具可读性:
var ret = !full.primary
? '<i class="fa fa-ban"></i> primary'
: '<i style="color: green" class="fa fa-check"></i> primary';
ret += !full.proctor
? '<i class="fa fa-ban"></i> proctor'
: '<i style="color: green" class="fa fa-check"></i> proctor';
return ret;