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,]))})
}
))
MyDT
0.1.45版
更新2
不知道为什么,但我认为$(this.toggleClass('selected')代码>
删除在standart DT包中添加的选定类(toggleClass
使用了两次,但什么也看不到)
试一试
或者设置selection='none'
为什么不存在于DTinput$…\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,]))})
}
))
MyDT
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不知道这一点。