【问题标题】:Apply a condition on specific column data - jquery DataTable对特定列数据应用条件 - jquery DataTable
【发布时间】:2016-01-16 12:41:31
【问题描述】:

首先,我有下表:

红色包围的栏目显示 2 种账户类型,值 1= Free 和值 2 = paid(免费,付费账户)。

我想在渲染数据之前,应用一个条件将1 更改为free2 更改为paid

就是这样。

表初始化:

var dataTableY = $('#table').DataTable({
    serverSide: true,
    ajax: {
        url: 'directory/class/method'
    },
    processing: true,
    scrollY: 400,
    paging: true,
    info: true,
    select: {
        style: 'os'
    },
    pagingType: 'full_numbers',
    language: {
        url: 'DataTables/lang/english.json'
    }
});

【问题讨论】:

  • 您是使用 JSON 源还是只是将其转换为 dataTable 的纯 HTML ?请告诉你你初始化了数据表。
  • 您没有任何columnscolumnDefs 定义?无论如何,请在下面的答案中使用columnDefs

标签: javascript jquery html datatables


【解决方案1】:

使用column renderer

var table = $('#example').dataTable({
    //...
    columnDefs : [
        { targets : [4],
          render : function (data, type, row) {
             return data == '1' ? 'free' : 'paid'
          }
        }
   ]
})   

如果列值为 1,渲染函数将返回 'free',否则返回 'paid'。如果您有更多值,则可以使用switch,或者例如还需要返回'N/A'


    columnDefs : [
        { targets : [4],
          render : function (data, type, row) {
            switch(data) {
               case '1' : return 'free'; break;
               case '2' : return 'paid'; break;
               default  : return 'N/A';
            }
          }
        }
   ]

【讨论】:

  • 谢谢,能否再给我一个switch语句的例子。
  • @davidkonrad ,我都没有运气,我使用了真假值,但它总是失败 data == 'true' ? 'ok' : 'no',知道可能缺少什么
  • @Dragon,没有信息很难说; "no lucky" 表示render 什么都不返回,好还是不好?问题要么是你的数据,要么是你的评估。一种情况可能是您的数据包含'1' 而不是'true'。如果服务器脚本盲目地从包含布尔字段的 mysql 表中加载行,就会出现这种情况。
  • @davidkonrad 它的 sql server 并且在 db 中它被保存为 bit ,但在代码中它是 true,false,这不适用于 datatable ,但是当我以 1 的形式将数据发送到 datatable和 0 然后它工作正常,不知道是什么问题,但它在 1,0 的情况下工作
  • @davidkonrad,它非常适合单个值,但是如果我必须在同一个单元格中显示多个值怎么办?就像现在开关(数据)只说一个值,以防我必须同时显示“免费和取消”? free=1 和 cancel= -1
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2021-09-07
  • 2017-03-02
  • 2015-09-29
  • 1970-01-01
  • 2013-04-22
  • 1970-01-01
  • 2019-03-07
相关资源
最近更新 更多