2017-12-21 14 views
2

私はR Shinyを使用してWebアプリケーションを構築しています。R Shiny CondtionalPanel CSSスタイルシートを使用していません

私はオブジェクトのタイプに応じて(時には)ピボットテーブルを表示するためにconditionPanelsを使用していますdf

以下に示すように、ピボットテーブルが条件付きパネル内に表示されている場合、cssは無視され、ピボットテーブルはデフォルトのスタイルで表示されます。しかし、条件付きパネルでレンダリングされていない2つ目のピボットボックスを含めると、両方のピボットボックスがcustom.cssに記述されているスタイルになります。

2番目のピボットテーブルがない場合、最初のピボットテーブルにスタイルシートが使用されていることを確認するにはどうすればよいですか?

# Server.R 
server <- shinyServer(function(input, output,session){ 
    df <- data.frame(col1 = c('a','b','c'), 
        col2 = c(1,2,3)) 

    ## Output PivotTable 
    output$pivotTable <- rpivotTable::renderRpivotTable({ 
    rpivotTable(data = df, 
       aggregatorName = 'Sum', 
       rendererName = 'Table') 
    }) 

    ## Output PivotTable2 
    output$pivotTable2 <- rpivotTable::renderRpivotTable({ 
    rpivotTable(data = df, 
       aggregatorName = 'Sum', 
       rendererName = 'Table') 
    }) 

    condition <- ifelse(is.data.frame(df), 'true', 'false') 

    ## Output PivotTable 
    output$panelTable <- renderUI({ 
    conditionalPanel(
     condition, 
     rpivotTableOutput("pivotTable") 
    ) 
    }) 
}) 



# UI.R: 
ui <- dashboardPage(
    title = "", 

    ## Header content + dropdownMenu 
    dashboardHeader(
    title = tags$b(""), 
    titleWidth = 250 
), 

    ## Sidebar content 
    dashboardSidebar(
    width = 250, 
    sidebarMenu(
     id = "tabs", 
     menuItem("tab1", tabName = "tab", icon = icon("table")) 
    ) 
), 

    ## Body content 
    dashboardBody(
    tags$head(tags$link(rel = "stylesheet", type = "text/css", href = "custom.css")), 
    tabItems(
     tabItem(tabName = "tab", 
     div(
      uiOutput('panelTable') 
     ), 
     div(
      rpivotTableOutput("pivotTable2") 
     ) 
    ) 
    ) 
) 
) 


# Create Shiny object 
shinyApp(ui = ui, server = server) 

CSS:

/* Adjust css of pivot table */ 
#pivotTable{ 
    overflow-x: scroll; 
    overflow-y: scroll; 
} 

.pvtRows, .pvtCols { 
    background: #FAFAFA none repeat scroll 0 0; 
} 

table.pvtTable tbody tr th, table.pvtTable thead tr th { 
    background: #FFFFFF; 
} 

.pvtAxisContainer li span.pvtAttr { 
    background: rgba(147,255,53,0.8); 
} 
+0

こんにちは、お返事のお手伝いをしましたか?それとも問題はまだ解決されていませんか? –

答えて

1

HIがこの

#pivotTable{ 
    overflow-x: scroll; 
    overflow-y: scroll; 
} 

.pvtRows, .pvtCols { 
    background: #FAFAFA none repeat scroll 0 0 !important; 
} 

table.pvtTable tbody tr th, table.pvtTable thead tr th { 
    background: #FFFFFF!important; 
} 

.pvtAxisContainer li span.pvtAttr { 
    background: rgba(147,255,53,0.8) !important; 
} 

希望などの各ルールの後!importantを追加したルールの上にピボットテーブルをも生成し、この助けて!

0

私はあなたがのdivの内側にクラスを定義しようとすることができると思います。例えば

:あなたの問題はあなたのCSSをCSSルールから却下されていることである

div(class = "pvtRows pvtAxisContainer", 
    uiOutput('panelTable') 
) 
関連する問題