You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Shiny应用中禁用DataTable行点击高亮效果

禁用Shiny DataTable行点击后的蓝色高亮效果

要禁用DataTable行点击后的蓝色高亮,你需要通过自定义CSS覆盖DT最新版本中用来实现选中效果的box-shadow属性,直接在Shiny的UI中添加样式规则即可:

  1. 在fluidPage内插入tags$style标签,针对选中行的样式进行重置:

    .datatable .table.dataTable tbody tr.selected {
      box-shadow: none !important;
      background-color: inherit !important;
    }
    
    • box-shadow: none 移除选中行默认的蓝色阴影边框
    • background-color: inherit 让选中行背景色和普通行保持一致(也可替换为具体颜色值,比如#ffffff)
  2. 修改后的完整可运行代码如下:

library(ggplot2)
library(shiny)
library(DT)

ui <- fluidPage(
  titlePanel("Basic DataTable"),
  # 自定义CSS禁用选中高亮
  tags$style(HTML("
    .datatable .table.dataTable tbody tr.selected {
      box-shadow: none !important;
      background-color: inherit !important;
    }
  ")),
  
  fluidRow(
    column(4,
           selectInput("man",
                       "Manufacturer:",
                       c("All",
                         unique(as.character(mpg$manufacturer))))
    ),
    column(4,
           selectInput("trans",
                       "Transmission:",
                       c("All",
                         unique(as.character(mpg$trans))))
    ),
    column(4,
           selectInput("cyl",
                       "Cylinders:",
                       c("All",
                         unique(as.character(mpg$cyl))))
    )
  ),
  DT::dataTableOutput("table")
)

server <- function(input, output) {
  
  output$table <- DT::renderDataTable(DT::datatable({
    data <- mpg
    if (input$man != "All") {
      data <- data[data$manufacturer == input$man,]
    }
    if (input$cyl != "All") {
      data <- data[data$cyl == input$cyl,]
    }
    if (input$trans != "All") {
      data <- data[data$trans == input$trans,]
    }
    data
  }))
  
}

shinyApp(ui = ui, server = server)

说明:最新版本的DT不再仅依赖背景色实现选中高亮,而是通过box-shadow添加了蓝色边框效果,因此需要同时重置这两个属性才能完全禁用高亮。!important用于确保自定义样式优先级高于DT的默认样式。

内容的提问来源于stack exchange,提问作者TobKel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.31 04:45:45