数据表在渲染中使用列名

问题描述 投票:0回答:1

如何使用列名而不是索引来获取渲染函数中的数据?

tableCols: [
  { title:'ID',     name: 'ID' },
  { title:'Active', name: 'Active',

    render(data,type,row,meta){
      return row[0] > 3  // NO
      return row.ID > 3  // YES
    }

  }
],


created_row: function(row,data,index){
  $(row).css('background-color', row[1] ? 'green' : 'red')      // NO
  $(row).css('background-color', row.Active ? 'green' : 'red')  // YES
}
datatables datatables-1.10
1个回答
0
投票

我能够通过正交数据的实验弄清楚这一点。还有其他一些来源。

关键在于数据附加到数据表时的格式。

Datatables 至少接受两种类型的数据:

二维数组

[["value1","value2","value3"]]

对象数组

[{"key1":"value1","key2":"value2","key3","value3"}]

如果您使用后者,您将能够使用键而不是索引。如果您使用前者,您将只能访问索引。

所以,对于我的例子...

tableData: [
  {"ID":1},
  {"ID":2},
  {"ID":3},
  {"ID":4},
],
tableCols: [
  { title:'ID',     name:'ID', data:'ID' },
  { title:'Active', name:'Active',

    render(data,type,row,meta){
      return row.ID > 3  
    }

  }
],


created_row: function(row,data,index){
  $(row).css('background-color', row.Active ? 'green' : 'red')
}

另一件事要注意:似乎没有一种方法可以在索引和名称之间来回切换而不需要大量工作,因此在更改数据显示方式之前请确保这是您想要的。

© www.soinside.com 2019 - 2024. All rights reserved.