2017-05-09 18 views
2

データセットページングのページを変更するたびに、入力値を変更する必要があります。データテーブルのページングイベントを観察するShiny

私はobserveEventを使用しようとしましたが、動作しません。

UI

fluidRow(
    column(10, 
     "" 
), 
    column(2,    
     textInput("inText", "Input text 2", value = "Default text") 
), 
    column(12, 
     dataTableOutput('table') 
) 
) 

サーバー

observeEvent(input$table, { 
    updateTextInput(session, "inText", value = paste("New text",0)) 
}) 

はあなたが私を助けることができると思います。

+0

は、それが他の質問に関連している:だからによる入力フィールドへまたは改ページの変更は、それが改ページボタンによってトリガ「通常」にもなり得るのだろうか? – BigDataScientist

+0

私がしようとしているのは、ページネーションボタンと入力によってページネーションが正常に変わることです。しかし、私はそれを通常変更する場合は、入力を新しいページに更新したい。 – JFernandez

+0

OK、次に、ページング情報を含む 'input $ table_state'を使用してください... – BigDataScientist

答えて

1

あなたのテーブルIDがtableであると仮定すると、次のようになります。 input$table_state$start/input$table_state$length + 1以下の完全な例で

library(DT) 
library(shiny) 
app <- shinyApp(
    ui = fluidPage(
    tags$head(
     # hides the default search functionality 
     tags$style(
     HTML(".dataTables_filter, .dataTables_info { display: none; }") 
    ) 
    ), 
    fluidRow(
     column(10, 
      "" 
    ), 
     column(2,    
      # adding new page filter 
      uiOutput("pageFilter") 
    ), 
     column(12, 
      dataTableOutput('table') 
    ) 
    ) 
), 
    server = function(input, output) { 

    output$pageFilter <- renderUI({ 
     val <- input$table_state$start/input$table_state$length + 1 
     numericInput("page", "Page", val, min = 1) 
    }) 

    output$table <- DT::renderDataTable({ 
     iris 
    }, options = list(pageLength = 5, stateSave = TRUE)) 

    # using new page filter 
    observeEvent(input$page, { 
     dataTableProxy("table") %>% selectPage(input$page) 
    }) 
    } 
) 

runApp(app, launch.browser = TRUE) 
関連する問題