我想实现DT
的SearchPanes
扩展,同时显式地包括/排除特定字段,但我不确定如何实现它。我想要显示所有的字段,但是只选择要包含在SearchPanes界面中的字段。
在下面的可重复示例中(主要来自文档),我如何仅选择island
,sex
和year
以包含在SearchPanes
中?
我尝试了searchPanes
和targets
参数的不同设置,但我不明白如何使用这些,我还没有很好地遵循JS文档。如能提供有关这些工作原理以及如何选择要包含的列的任何指导,将不胜感激。
library(DT)
library(palmerpenguins)
datatable(
penguins,
options = list(dom = 'Pfrtip', columnDefs = list(list(
searchPanes = list(show = FALSE), targets = 1:4
))),
extensions = c('Select', 'SearchPanes'),
selection = 'none'
)
可能有更好的方法,但这是可行的:
datatable(
penguins,
options = list(
dom = 'Pfrtip',
columnDefs = list(
list(
searchPanes = list(show = FALSE), targets = c(1, 3:6)
),
list(
searchPanes = list(show = TRUE), targets = c(2, 7:9)
)
)
),
extensions = c('Select', 'SearchPanes'),
selection = 'none'
)
searchPanes
参数show
可以设置为TRUE
或FALSE
,并且状态被定向到targets
参数中定义的特定目标列。
在一行中,我设置了show=FALSE
并定义了我不想显示的所有列。然后在下一行,我设置showTRUE
并定义我想要显示的列。我发现,如果我将一列设置为show=FALSE
,并在下一行将其设置为show=TRUE
,它仍然不显示。
DataTables JS库文档很有帮助,但需要一点时间才能理解。columns.searchPanes.show
部分包含了答案。每个searchPanes
语句都有一些参数和一组目标。如下:
$(document).ready(function() {
$('#example').DataTable({
dom: 'Plfrtip',
columnDefs: [
{
searchPanes: {
show: true
},
targets: [0]
},
{
searchPanes: {
show: false
},
targets: [2]
}
]
});
});