Shiny中renderDataTable列搜索框位于底部,如何调整到顶部
解决方案
你需要在renderDataTable的options参数中添加initComplete配置,通过JS回调将列搜索框移动到表格顶部,修改后的代码如下:
library(shiny) library(tidyverse) # 建议显式加载DT包,避免命名冲突 library(DT) # 原有数据加载逻辑不变 data_for_table <- read_csv("data/ForStatAnalysis.csv") %>% select(-ElectionYear ) %>% select(-State_abb) %>% rename('Total Migration'=totalMigration) shinyServer(function(input, output) { output$base_data <- renderDataTable( data_for_table, options=list( pageLength = 10, scrollX=TRUE, # 新增配置:移动列搜索框到顶部 initComplete = JS( "function(settings, json) {", " var table = this.api();", " // 迁移搜索行到表头下方", " $('.dataTables_scrollFoot tfoot tr').appendTo('.dataTables_scrollHead thead');", " // 重新绑定搜索事件保证功能正常", " table.columns().every(function() {", " var that = this;", " $('input', this.header()).on('keyup change clear', function() {", " if (that.search() !== this.value) {", " that.search(this.value).draw();", " }", " });", " });", "}" ) ) ) })
适配说明
如果你关闭了表格水平滚动(即移除了scrollX=TRUE配置),只需要把上述JS代码里的.dataTables_scrollFoot替换为tfoot、.dataTables_scrollHead替换为thead即可正常生效。
内容的提问来源于stack exchange,提问作者done_merson
相关产品推荐
相关产品推荐

