Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/67.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 在应用程序中使用自定义回调时,DT datatable行不会突出显示_R_Shiny_Dt - Fatal编程技术网

R 在应用程序中使用自定义回调时,DT datatable行不会突出显示

R 在应用程序中使用自定义回调时,DT datatable行不会突出显示,r,shiny,dt,R,Shiny,Dt,下面我将介绍如何从单击的行中获取元素。除了不高亮显示所选行外,此选项工作正常。代码如下: library(DT) library(shiny) runApp(shinyApp( ui = fluidPage(DT::dataTableOutput('tab'), verbatimTextOutput('row')), server = function(input, output) { output$tab = DT::renderDataTable({ datat

下面我将介绍如何从单击的行中获取元素。除了不高亮显示所选行外,此选项工作正常。代码如下:

library(DT)
library(shiny)

runApp(shinyApp(
  ui = fluidPage(DT::dataTableOutput('tab'), verbatimTextOutput('row')),
  server = function(input, output) {
    output$tab = DT::renderDataTable({
      datatable(iris, selection = 'single',
                callback = JS("table.on('click.dt', 'tr',
                                function() {
                                  $(this).toggleClass('selected');
                                  Shiny.onInputChange('row', table.rows('.selected').data().toArray());
                                });")
      )
    })
    output$row = renderText({input$row})
  }
))

为什么不存在于DT
输入$…\u行\u选中的
? 像

更新 例如,您有dunamic数据

dt1=reactive({
return(iris[iris$Species %in% c("setosa","versicolor"),])})
可能存在任何其他数据操作

比你的代码更有用

runApp(shinyApp(
  ui = fluidPage(DT::dataTableOutput('tab'), verbatimTextOutput('row')),
  server = function(input, output) {
    dt1=reactive({
      return(iris[iris$Species %in% c("setosa","versicolor"),])})
    output$tab = DT::renderDataTable({
      datatable(dt1(), selection = "single"
      )
    })
    output$row = renderText({if(length(input$tab_rows_selected)>0) paste(input$tab_rows_selected,as.character(dt1()[input$tab_rows_selected,]))})
  }
      ))
My
DT
0.1.45版

更新2 不知道为什么,但我认为
$(this.toggleClass('selected')
删除在standart DT包中添加的选定类(
toggleClass
使用了两次,但什么也看不到)

试一试


或者设置
selection='none'

为什么不存在于DT
input$…\u rows\u selected
? 像

更新 例如,您有dunamic数据

dt1=reactive({
return(iris[iris$Species %in% c("setosa","versicolor"),])})
可能存在任何其他数据操作

比你的代码更有用

runApp(shinyApp(
  ui = fluidPage(DT::dataTableOutput('tab'), verbatimTextOutput('row')),
  server = function(input, output) {
    dt1=reactive({
      return(iris[iris$Species %in% c("setosa","versicolor"),])})
    output$tab = DT::renderDataTable({
      datatable(dt1(), selection = "single"
      )
    })
    output$row = renderText({if(length(input$tab_rows_selected)>0) paste(input$tab_rows_selected,as.character(dt1()[input$tab_rows_selected,]))})
  }
      ))
My
DT
0.1.45版

更新2 不知道为什么,但我认为
$(this.toggleClass('selected')
删除在standart DT包中添加的选定类(
toggleClass
使用了两次,但什么也看不到)

试一试


或者设置
selection='none'

iris
这里的数据只是一个例子。在真实的应用程序中,datatable是动态生成的。输入$tab\u rows\u从您的数据中选择返回行号,您可以根据需要返回所有行数据。(要添加示例)在您的情况下,您需要调用函数
dt1
两次来呈现表格并获取值。Ok不知道这一点。
iris
这里的数据只是一个示例。在真实的应用程序中,datatable是动态生成的。输入$tab\u rows\u从您的数据中选择返回行号,您可以根据需要返回所有行数据。(要添加示例)在您的示例中,您需要调用函数
dt1
两次来呈现表并获取值。Ok不知道这一点。