我的DT数据表上有一个标语,上面写着“正在处理...”,即使该数据表已被处理并且数据出现在标语的后面。横幅不会消失,这让我发疯。

r - R Shiny DT::renderDataTable卡住了覆盖着的“Processing…”横幅-LMLPHP

我的应用程序的某些用户希望使用已过时的Shiny :: renderDataTable()的特定于列的搜索功能,因此我在某些选项卡上为data.frames运行了Shiny :: renderDataTable(),而在其他选项卡上运行了DT :: renderDataTable()标签。

我正在使用R-Portable(Windows 7),因为该应用程序需要可部署到地板上的相关利益方...因此,除非您使用R-Portable,否则我不相信您会完全重现我的环境。正在运行...但这似乎是一个AJAX问题,因此有见识的人可以给出答案而不会“重现”错误。此外,此Shiny App中至少有1500行代码,因此我正在尽我所能阐明问题,而不会造成太多混乱。

就功能而言,一切都可以在我的应用程序中完美运行……并且我正在使用以下所有软件包,包括ShinyBS(引导程序)和Shinythemes,将所有主要功能设置为global.R文件:

library(shiny)
library(shinyBS)
library(shinythemes)
library(RODBC)
library(ggplot2)
library(gridExtra)
library(Hmisc)
library(stringr)
library(data.table)
library(DT)


我使用使用RODBC从SQL数据库中调用的函数创建我的响应数据表对象...我有一个操作按钮,一个文本输入,而react()脚本调用了返回数据的函数AttrInfo()。帧。

TriInfo = reactive({
  input$UpdateTBAtt
  if(input$UpdateTBAtt == 0) return(NULL)
  isolate(withProgress(message = "Searching for Credit Attribute",
                     value = 0, {
                       AttrInfo(input$TriAttr)
                     }))
})


我用于呈现数据表的代码遵循DT指南:

 output$TriLDD <- DT::renderDataTable({
   req(input$UpdateTBAtt)
   DT::datatable(TriInfo(),options = list(paging=FALSE,searching=FALSE))
 })


我的ui.R文件调用此对象:

 shinyUI(fluidPage(
     list(tags$head(HTML('<link rel="icon", href="RosiePageICON.png",
                  type="image/png" />'))),
     div(style="padding: 1px 0px; width: '100%'",
       titlePanel(title="", windowTitle="Rosetta")),
     navbarPage(theme = shinytheme("spacelab"),title = div(img(src="ReadyRosie_Logo6.png"),""),
tabPanel("Tri-Bureau Attributes",
    sidebarLayout(
        sidebarPanel(width = 3,
            actionButton(inputId = "UpdateTBAtt",label = "Get Attribute"),
            textInput("TriAttr","Credit Attribute:", value = "")),
        mainPanel(width=9,
            tabsetPanel(id = "TB",
                tabPanel(title = "Check Tables",
                     p("Here's the Definition:"),
                     dataTableOutput(outputId = "TriLDD")))))))))

最佳答案

所以我终于找到了解决方法,隐藏在jQuery库中...如果答案是一个简单的选择,有时它不需要可重现的代码...

通常,当在同一应用程序中也发出了Shiny :: renderDataTable命令时,DT库的jQuery处理中出现了某些情况,这引起了问题。无论如何,我发现了一个简单的方法。

我去了dataTables jQuery页面,找到了“处理”选项...我只是将其添加到了这些选项中:

DT::datatable(TriInfo(),options = list(paging=FALSE, searching=FALSE, processing=FALSE))


终于消失了

07-26 07:45