Jquery DataTables使用IF语句在一列中的两个字段

时间:2017-09-06 22:23:11

标签: jquery datatable datatables

我有一个使用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语句?

1 个答案:

答案 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;