【问题标题】:jQuery DataTables fnCreatedCell not being calledjQuery DataTables fnCreatedCell 未被调用
【发布时间】:2015-07-14 13:03:58
【问题描述】:

我想根据单元格的值更改单元格的文本颜色。但是,当我向表中添加数据时,不会调用 fnCreatedCell 函数。

考虑到我成功使用了fnCreatedRow,这很奇怪。但是,这只能为整行着色,这不是所需的功能。

我可以看到后一个函数属于“回调”类型,而fnCreatedCell 属于“列”类型。所以我假设我不能像fnCreatedRow 那样使用fnCreatedCell,但是我该如何使用呢?

代码如下:

$(document).ready(function() {
        $('#demo').html('<table cellpadding="0" cellspacing="0" border="0" class="display cell-border"  id="example" ></table>');

        t = $('#example').DataTable({
            "columns": 
            [
                {"title": "c1", "data": "c1" },
                {"title": "c2", "data": "c2" },
            ],

            "fnCreatedCell": function (nTd, sData, oData, iRow, iCol) 
            {
                console.log(sData, cData, 'TEST'); // not being done
                if (sData > 30) 
                {
                    $(nTd).css('color', 'blue')
                }
            }
        });        
    });

【问题讨论】:

    标签: javascript jquery callback datatables cell


    【解决方案1】:

    '列'的类型”表示它是 columns / columnDefs 结构的一部分,即您有一个 fnCreatedCell(在您使用时来自 1.10.x可以为每个单独的列命名为createdCell)。示例:

    t = $('#example').DataTable({
        "columns": [
           {"title": "c1", "data": "c1" },
           {"title": "c2", 
            "data": "c2",
            "fnCreatedCell": function (nTd, sData, oData, iRow, iCol) {
                console.log(sData, cData, 'TEST'); // not being done
                if (sData > 30) {
                    $(nTd).css('color', 'blue')
                }
             }
           }
        ] 
    });     
    

    【讨论】:

      【解决方案2】:

      fnCreatedCell 应该用于每一列。它不是整个数据表的通用实现。请使用下面的实现。

      t = $('#example').DataTable({
          "columns": [
              {"title": "c1", "data": "c1",
                  "fnCreatedCell": function (nTd, sData, oData, iRow, iCol) {
                      console.log("fnCreatedCell");
                  }
              },
             {"title": "c2", "data": "c2"}
          ] 
      });  
      

      【讨论】:

        猜你喜欢
        • 2023-03-22
        • 1970-01-01
        • 2012-12-24
        • 2015-10-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多