2016-03-22 42 views
5

我正在構建一個R閃亮的儀表板,當我使用DT包和renderdatatable()將我的數據放在表中。在每列的頂部,我有過濾器,搜索框太窄而無法看到文本並選擇一個選項。以下是圖像:R閃亮的數據過濾器框大小以縮小看到文本

enter image description here

有誰知道的方式來增加寬度?

這是我在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')) 

這裏是在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%"))))) 

我嘗試這樣做,但它沒有工作:

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")) 
))) 

回答

1

我使用CSS來解決這個問題

td[data-type="factor"] input { 
    width: 100px !important; 
} 

my.css文件中www子目錄,並鏈接到它:

shinyApp(
    ui = fluidPage(
     tags$head(
      tags$link(
       rel = "stylesheet", 
       type = "text/css", 
       href = "my.css") 
     ), 

     DT::dataTableOutput(...) 
    ) 
+0

這確實使得選擇框足夠大,但看起來這可能導致過濾器與列名惡意出現問題。 –