2016-03-22 8 views
5

私はR光沢のあるダッシュボードを作成しています。データをDTパッケージとrenderdatatable()を使用してテーブルに配置しています。各列の上部にフィルタがあり、検索ボックスが狭すぎてテキストを表示してオプションを選択できません。ここでは画像です:R光沢のあるデータテーブルフィルタボックスのサイズを狭くしてテキストを表示

enter image description here

誰もが幅を大きくする方法を知っていますか?

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

私はこれを試してみましたが、それはうまくいきませんでした:ここui.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')) 

はここserver.r内のDataTableのコードのために私のコードです:

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

A similar question was answered here.

また、to use range sliders to filter rows within rangesの順番で、「日付リスト」列をas.Date()を使用して日付形式に変換することを検討してください。

+0

残念ながら、私はそれを試みましたが、影響はありませんでした。それは必ずしも私が拡張しようとしている列の幅ではなく、ドロップダウンフィルタボックスの幅です。 – Tracy

1

私はCSSを使用してこの問題を解決:

input { 
    width: 100px !important; 
} 

あなただけfactorフィルタにこのスタイルを適用することができます。

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

wwwサブディレクトリにmy.cssファイルを入れて、それへのリンク:

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

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

これは、選択ボックスのサイズが十分に大きくなるようにしますが、これにより、フィルタが列名に影響を与えるという問題が発生する可能性があります。 –

関連する問題