我陷入尝试在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
但没有成功。
最佳答案
如果您有兴趣将多列设置为不同的宽度,请考虑以下事项(注意 R 使用基于 1 的编号,而 javascript 则基于 0):
col_a <- which(names(dat) %in% c("column_name1", "column_name2"))
col_b <- which(names(dat) %in% c("column_name3", "column_name4"))
col_c <- which(names(dat) %in% c("column_name5"))
columnDefs = list(list(width = '30px', targets = as.list(col_a - 1)),
list(width = '80px', targets = as.list(col_b - 1)),
list(width = '200px', targets = as.list(col_c - 1)))
关于r - 将列名称传递给 Shiny 数据表中的目标选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55401210/