R shiny datatable filter box size to narrow to see text

Viewed 6681

I'm building an R shiny dashboard and when I put my data in a table using the DT package and renderdatatable(). At the top of each column, I have filters, the search box is too narrow to see the text and select an option. Here's an image:

enter image description here

Does anyone know of a way to increase the width?

Here's my code for the datatable code in the server.r:

  output$table <- DT::renderDataTable(DT::datatable({    
    data <- rv$data
    if (input$sour != "All") {
      data <- data[data[,1] == input$sour,]
    }else{data}
    if (input$sour1 != "All") {
      data <-data[data[,2] == input$sour1,]
    }else{data}
    if (input$tran != "All") {
      data <-data[data[,3] == input$tran,]
    }else{data}
  },filter='top'))

here's the code in the ui.r:

 tabItem(tabName = "ResultsTable",
              fluidPage(  
                headerPanel(
                  h1("List", align="center",  style = "font-family: 'Verdana';font-weight: 800; line-height: 1.1;   color: #151515;")),
                # fluidRow(
                #     column(8, DT::dataTableOutput("table",width = "100%"),offset = 2)))),
                #                 # Create a new Row in the UI for selectInputs
                fluidRow(

                  column(4,
                         selectInput("sour",
                                     "Name:",
                                     c("All",
                                       unique(as.character(df[,1]))))
                  ),
                  column(4,
                         selectInput("sour1",
                                     "Number:",
                                     c("All",
                                       unique(as.character(df[,2]))))
                  ),
                  column(4,
                         selectInput("tran",
                                     "Code:",
                                     c("All",
                                       unique(as.character(df[,3])))))),
                # Create a new row for the table.
                fluidRow(column(11, DT::dataTableOutput("table",width = "95%")))))

I tried this, but it did not work:

 output$table <- DT::renderDataTable(DT::datatable({    
    data <- rv$data
    if (input$sour != "All") {
      data <- data[data[,1] == input$sour,]
    }else{data}
    if (input$sour1 != "All") {
      data <-data[data[,2] == input$sour1,]
    }else{data}
    if (input$tran != "All") {
      data <-data[data[,3] == input$tran,]
    }else{data}
  },filter='top',options = list(
    autoWidth = TRUE,
    columnDefs = list(list(width = '200px', targets = "_all"))
  )))
3 Answers
Related