【发布时间】:2019-03-28 15:19:48
【问题描述】:
我一直在尝试在 columnDefs 的目标选项中传递列名(而不是列号)。该表是动态的,所以我绝对需要选择以列名为目标。下面是一个可重现的例子。但是,该示例不是动态的。
datatable(iris[c(1:20, 51:60, 101:120), ], options = list(columnDefs = list(list(
targets = 5,
render = JS(
"function(data, type, row, meta) {",
"return type === 'display' && data.length > 6 ?",
"'<span title=\"' + data + '\">' + data.substr(0, 6) + '...</span>' : data;",
"}")
))), callback = JS('table.page(3).draw(false);'))
尝试使用 targets = 'Species' , targets = iris$Species 但它们不起作用。
【问题讨论】:
-
也许
targets = which(names(iris)=="Species")? -
这是完美的。工作得很好。只是一个建议:在动态表中,代码必须指向子集数据框而不是原始数据框。例如,如果
"columns"是应用程序中的输入:cols <- as.numeric(input$columns)which(names(iris[,cols])=="Species"但是,如果您将评论作为答案,我会接受,谢谢 :D