Несколько Javascript в Dataatable - PullRequest
       38

Несколько Javascript в Dataatable

0 голосов
/ 30 октября 2018

Есть ли способ определить несколько javascript в DT Shiny? У меня есть выпадающие в каждом ряду таблицы. Я хочу, чтобы по умолчанию некоторые выпадающие списки были выбраны как «Предотвращение»? Я хочу определить следующий код JS в DT. Этот код устанавливает 5-й выпадающий список (сверху), который будет назначен как «Предотвращение». Но это не работает.

function setSelectedIndex(s, valsearch)
 for (i = 0; i< s.options.length; i++)
{ 
if (s.options[i].value == valsearch)
{
s.options[i].selected = true;
break;
}
}
return;}

setSelectedIndex(document.getElementById('selecter_5'),'Prevention');

Приведенный ниже код является основным сияющим кодом, который я использую -

library(shiny)
library(DT) 

mymtcars = mtcars
mymtcars$id = 1:nrow(mtcars)
runApp(list(
  ui = basicPage(
    h2('The mtcars data'),
    DT::dataTableOutput('mytable'),
    h2("Selected"),
    tableOutput("checked")
  )
,

server = function(input, output) {

    # datatable with checkbox
    output$mytable = DT::renderDataTable({

    #Display table with select
    DT::datatable(cbind(Pick=paste0('
                                      <select id="selecter_', mymtcars$id, '"> 
                                      <option disabled selected>Choose Status</option>
                                      <option>Non-Fraud</option>
                                      <option>Fraud</option>
                                      <option>Prevention</option>
                                      </select>',""), mymtcars),
                                      extensions = c('Scroller'),
                                      filter = 'top', 
                                      selection=list(mode = 'multiple'), 
                                      options = list(
                                      scrollX = TRUE, 
                                      scroller = TRUE,
                                      scrollY = "400px",
                                      orderClasses = TRUE,
                                      pageLength = 50, 
                                      fixedHeader = TRUE,
                                      dom = 'Bfrtip',
                                      drawCallback= JS(
                                      'function(settings) {
                                      Shiny.bindAll(this.api().table().node());}'
                                      )), escape=F) }, server = T)


  # helper function for reading checkbox
  shinyValue = function(id, len) { 
      unlist(lapply(seq_len(len), function(i) { 
        value = input[[paste0(id, i)]] 
        if (is.null(value)) NA else value 
      }))
    }

# output read checkboxes
output$checked <- renderTable({
      data.frame(selected=shinyValue("selecter_",nrow(mtcars)))
    })

}))
...