2017-05-08 1 views
1

앱이 데이터 테이블을 렌더링 할 때 Shiny가 기본적으로 브라우저에 표시하는 검색 입력을 변경해야합니다. 검색 입력은 데이터 테이블의 데이터를 찾고 사용자의 입력에 따라 해당 정보 필터링을 표시합니다. Shiny는 기본적으로이를 구현합니다.반짝이는 데이터 테이블 수정하기

검색과 같은 입력을 구현하고 싶지만 사용자가 입력 한 페이지를 표시하기 위해 데이터를 필터링하는 대신 페이지 매김을 사용하십시오.

아이디어가 있으십니까?

답변

0

빠른 해결책은 아래를 참조하십시오. 현재 기능을 숨기고 위에 새로운 기능을 구현합니다.

library(DT) 
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 
      numericInput("page", "Page", 1, min = 1) 
    ), 
     column(12, 
      dataTableOutput('table') 
    ) 
    ) 
), 
    server = function(input, output) { 

    output$table <- renderDataTable(iris, options = list(pageLength = 5)) 

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

물론 실제 DOM 요소를 대체하는 것이 좋습니다. 그럼 자바 스크립트 가야 할 길입니다. 요소를 찾아 기능을 덮어 쓰거나 삭제하고 바꿀 수 있습니다. 좋은 출발점은 여기에 있습니다 : https://datatables.net/examples/basic_init/dom.html. 그러나 나는 그것이 필요한 시간의 관점에서 과잉이라고 생각한다.

관련 문제