firmo23
firmo23

Reputation: 8404

Empty the search bar of a datatable by default instead of including the highlighted text

Is there a way to make the Search bar of the datatable empty instead of having the 'setosa' inside it by default while keeping the 'setosa' highlighted inside the table? Or at least find another way to highlight or underline the 'setosa'?

library(DT)
ui <- dashboardPage(
    dashboardHeader(title = "Dynamic sidebar"),
    dashboardSidebar(

    ),
    dashboardBody(
        DT::dataTableOutput("t")
    )
)

server <- function(input, output) {

    output$t <- renderDT(

        datatable(iris, options = list(searchHighlight = TRUE, search = list(search = 'setosa'))) 
    )

}

shinyApp(ui, server)

Upvotes: 0

Views: 35

Answers (1)

Pork Chop
Pork Chop

Reputation: 29387

Ok, you can do something like this.

library(DT)
library(shiny)
library(shinydashboard)

ui <- dashboardPage(
    dashboardHeader(title = "Dynamic sidebar"),
    dashboardSidebar(
    ),
    dashboardBody(
        DT::dataTableOutput("t")
    )
)

server <- function(input, output) {

    data <- reactive({
        mydata <- iris
        rownames(mydata) <- gsub("setosa",tags$span(style="color:red", "setosa"),rownames(mydata))
        for(i in 1:ncol(mydata)){
            mydata[,i] <- gsub("setosa",tags$span(style="color:red", "setosa"),mydata[,i])
        }
        mydata
    })

    output$t <- renderDT(
        datatable(data(), options = list(searchHighlight = TRUE, search = list(search = '')), escape = F)  
    )

}

shinyApp(ui, server)

Upvotes: 2

Related Questions