【发布时间】:2020-04-16 20:53:25
【问题描述】:
我有一个闪亮的应用程序。该应用程序包含一个表格。表格中的每一行都包含一个按钮,用户可以通过该按钮将该行中的数据下载到报告中。
我只是坚持能够将自定义行按钮连接到下载处理程序。通常我会使用下载按钮来执行此操作,但是如何使用自定义按钮来执行此操作。
我的观察活动:
observeEvent(input$lastClick,
{
if (input$lastClickId%like%"letter")
{
row_to_report=as.numeric(gsub("letter_","",input$lastClickId))
MyLetter=RV4$data[row_to_report,]
这里如何使用downloadHandler触发下载:
downloadHandler(
filename = "letter.docx",
content = function(file) {
tempReport <- file.path(tempdir(), "letter.Rmd")
file.copy("letter.Rmd", tempReport, overwrite = TRUE)
# Set up parameters to pass to Rmd document
params <- list(MyLetter)
rmarkdown::render(tempReport, output_file = file,
params = params,
envir = new.env(parent = globalenv()),
)
}
)
}
else if (input$lastClickId%like%"delete")
{
row_to_del=as.numeric(gsub("delete_","",input$lastClickId))
RV3$data=RV3$data[-row_to_del,]
}
}
)
我的数据表是这样创建的:
output$drilldownBarr <- DT::renderDT({
if (!is.null(drilldataBarrd())) {
browser()
drilldataBarrdf<-drilldataBarrd()
drilldataBarrdf$Actions<-
paste0('
<div class="btn-group" role="group" aria-label="Basic example">
<button type="button" class="btn btn-secondary letter" id=letter_',1:nrow(drilldataBarrd()),'>Letter</button>
</div>
')
}
datatable(drilldataBarrdf,escape=F, extensions = c("Select","Buttons"), selection = "none",
options = list(
scrollX = TRUE,
scrollY = TRUE,
pageLength = 200,
select = "api",
dom = 'Bfrtip',
buttons = c('copy', 'csv', 'excel', 'pdf', 'print','colvis'))
)
})
也许有更好的方法?例如在每一行中创建一个下载按钮。但是如何做到这一点呢?
【问题讨论】:
-
这张桌子是怎么做的?使用
DT,您可以将一些downloadButtons 放在一个列中。 -
@StéphaneLaurent 我已经展示了如何创建数据表。我想我不知道如何在每一行中创建下载按钮。完成此操作后,如何将下载按钮与仅该行的数据相关联?...