R Shiny DT::renderDataTable 被覆盖的 "Processing..."横幅卡住

标签 r shiny dt

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

Stupid F%&*ing Processing Banner

我的应用程序的某些用户想要已弃用的shiny::renderDataTable()的特定于列的搜索功能,因此我在某些选项卡上为data.frames运行shiny::renderDataTable(),并且DT::renderDataTable( )在其他选项卡上。

我正在使用 R-Portable (Windows 7),因为该应用程序需要可部署到现场的相关利益相关者...所以除非您使用 R-Portable,否则我不相信您会完全重现我正在运行的环境...但这似乎是一个AJAX问题,所以也许有洞察力的人可以给出答案而不会“重现”错误。此外,这个 Shiny 的应用程序中至少有 1500 行代码,因此我将尽我所能来阐明问题,而不会留下太多困惑。

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

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

我使用一个函数创建我的响应式(Reactive)数据表对象,该函数使用 RODBC 从我们的 SQL 数据库调用...我有一个操作按钮、一个文本输入,响应式(Reactive)() 脚本调用函数 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)) 

它终于消失了。

关于R Shiny DT::renderDataTable 被覆盖的 "Processing..."横幅卡住,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37862528/

相关文章:

r - R 中数据的子集化和分配

r - 如何根据R中另一个变量的频率计算一个变量的百分比

r - 在 Shiny 的米中转换方差

r - observeEvent() 和reactiveValues() - 如何创建良好的占位符

r - 如何在 Shiny 的应用程序中通过 dataTableProxy 创建跨多个数据表的全局搜索框?

R Shiny 数据表 : Format numbers not by column but by row

r - 通过 id 变量计算滚动总和,缺少时间点

r - 绘制一个盒子大小改变的表格

css - R:突出显示 Shiny 的数据表

r - 在 R DT 数据表的 lengthMenu(页面长度菜单)中设置值的名称