如何隐藏DT::datatable列名旁的排序箭头?
隐藏DT::datatable()列名称旁的排序箭头的方法
有两种常见实现方式,根据你的需求选择:
方式一:完全禁用排序功能(箭头直接消失)
如果不需要表格的排序功能,直接在datatable()的options参数里关闭排序即可,代码修改如下:
## app.R ## library(shiny) library(shinydashboard) library(DT) # 注意要加载DT包,原代码漏了 ui <- dashboardPage( dashboardHeader(), dashboardSidebar(), dashboardBody( datatableOutput("table") ) ) server <- function(input, output) { output$table <- renderDataTable({ datatable(iris, # 原代码里的"iris"要去掉引号,否则会把字符串当成数据 options = list(ordering = FALSE)) # 关闭排序,箭头直接消失 }) } shinyApp(ui, server)
方式二:保留排序功能,但隐藏箭头
如果需要保留排序功能,只是不想显示箭头,可以通过自定义CSS实现:
方法1:在datatable()里直接添加回调处理
## app.R ## library(shiny) library(shinydashboard) library(DT) ui <- dashboardPage( dashboardHeader(), dashboardSidebar(), dashboardBody( datatableOutput("table") ) ) server <- function(input, output) { output$table <- renderDataTable({ datatable(iris, callback = JS(" $('table.dataTable thead th').removeClass('sorting sorting_asc sorting_desc'); ") ) }) } shinyApp(ui, server)
方法2:在UI里添加全局CSS(作用于所有DT表格)
## app.R ## library(shiny) library(shinydashboard) library(DT) ui <- dashboardPage( dashboardHeader(), dashboardSidebar(), dashboardBody( tags$head( tags$style(HTML(" table.dataTable thead th.sorting, table.dataTable thead th.sorting_asc, table.dataTable thead th.sorting_desc { background-image: none !important; } ")) ), datatableOutput("table") ) ) server <- function(input, output) { output$table <- renderDataTable({ datatable(iris) }) } shinyApp(ui, server)
说明:第二种方式里的CSS是通过移除排序箭头的背景图实现隐藏,点击列名依然可以触发排序,只是看不到箭头图标。
内容的提问来源于stack exchange,提问作者firmo23
相关产品推荐
相关产品推荐

