我正在尝试创建一个搜索窗格,它允许我根据 DataTable 列中的字符串值过滤出行,具体来说,该值是否包含给定字符串,类似于 this (“包括(爱丁堡)”中间搜索窗格的一部分),就在一个闪亮的应用程序中,我似乎不知道如何让它工作。
我已经有一个成功工作的搜索窗格,用于按值过滤数字列,第二个搜索窗格设置相同,只是具有不同的返回子句,但只显示搜索窗格的空窗口。
代码如下:
output$completeTable <- DT::renderDataTable ({
datatable(
complete_Table,
options = list(
dom = "Plfrtip",
pageLength = 10,
columnDefs = list(
list(
searchPanes = list (
show = TRUE,
options = list(
list(
label = "big",
value = JS("function(rowData, rowIdx) { return (rowData[8] > 10000); }"
)
),
list(
label = "small",
value = JS("function(rowData, rowIdx) { return (rowData[8] < 10000); }"
)
)
)
),
targets = 8
),
list(
searchPanes = list (
show = TRUE,
options = list(
list(
label = "All",
value = JS("function(rowData, rowIdx) { return rowData[3].includes('All'); }"
)
),
list(
label = "Media",
value = JS("function(rowData, rowIdx) { return rowData[3].includes('Media'); }"
)
)
)
),
targets = 3
),
list(searchPanes = list(show = FALSE), targets = c(1,2,4:7,9:11) )
),
),
extensions = c('Select', 'SearchPanes')
)
}, server = FALSE)
正如我所说,第一个搜索窗格本身可以正常工作,但是一旦我添加第二个搜索窗格,第一个搜索窗格就不再可见/存在,而第二个搜索窗格中也没有任何数据或标签。我假设问题是我必须以不同的方式包含搜索词(“媒体”和“全部”),但我不知道如何实现。
好的,找到了this答案,虽然它不完全是我想要的,但它主要解决了我的问题。