2016-11-23 7 views
0

dataTableOutputをいくつかのタブで再利用する可能性はありますか?私が見つけた唯一の可能性は、dataTableOutputが独自の行を取得するレイアウトを使用していましたが、私はすべてのタブの上にそれを望んでいません。異なるタブで同じdataTableOutputを使用する

dataTableOutputを複数回呼び出すと、テーブルが1つも印刷されません。

編集:私は、これはほとんど行われてしまったdaattaliの答えに

感謝。私が以前に言及しなかった唯一の事は、私はある方法で2つのテーブルを同期させる必要があるということです。現在のところ、私はプロキシを介してお互いを更新しようとすると、短時間に多くの行を選択するとシステム全体がバギーになる...

答えて

2

あなたは同じIDを使うことはできません。同じIDの同じページ上にある2つの要素)を作成しますが、これを実行可能な値としてテーブルを生成し、その値をレンダリングテーブル関数内に単に戻すだけです。これは、一度テーブルを生成するためのコードを実行し、必要なだけ多くの出力でテーブルを再利用するという利点があります。

例:

library(shiny) 

ui <- fluidPage(
    tabsetPanel(
    tabPanel("tab1", "tab 1", DT::dataTableOutput("table1")), 
    tabPanel("tab2", "tab 2", DT::dataTableOutput("table2")) 
) 
) 

server <- function(input, output, session) { 
    table_data <- reactive({ 
    DT::datatable(iris) 
    }) 
    output$table1 <- DT::renderDataTable(table_data()) 
    output$table2 <- DT::renderDataTable(table_data()) 
} 

shinyApp(ui = ui, server = server) 
+0

は[OK]を、これはいいですね。そして、私はdataTablesの間で選択された行を同期するためにプロキシを使用しなければならないと思いますか、それとも簡単な方法ですか? – drmariod

+0

申し訳ありません私はそれを試していない、私は分からない –

関連する問題