我的DT数据表有一个横幅,上面写着"处理......"即使已经处理了数据表并且数据显示在横幅后面。横幅没有消失,它让我疯狂。
我的应用程序的某些用户想要使用已弃用的shiny :: renderDataTable()的列特定搜索功能,因此我在某些选项卡上运行了data ::frames的shiny :: renderDataTable(),以及DT :: renderDataTable( )在其他标签上。
我使用的是R-Portable(Windows 7),因为应用程序需要部署到地板上的相关利益相关者......所以除非您使用R-Portable,否则我不会相信你会完全重现我正在运行的环境......但这似乎是一个AJAX问题,所以也许有洞察力的人可以在没有"再现"错误。此外,这个Shiny App中至少有1500行代码,所以我在没有留下太多混淆的情况下,尽可能地阐明问题。
我的应用程序在功能方面的一切都完美无瑕......我使用了以下所有软件包,包括shinyBS(bootstrap)和闪亮主题,将所有主要功能设置为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数据库调用...我有一个操作按钮,一个文本输入,而reactive()脚本调用函数AttrInfo()返回data.frame。
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")))))))))
答案 0 :(得分:6)
所以我终于找到了隐藏在jQuery库中的解决方法......如果答案是一个简单的选项,有时它不需要可重现的代码...
一般来说,当gl :: renderDataTable命令也来自同一个应用程序时,在DT库的jQuery处理中出现了一些问题,这就引起了这个问题。无论如何,我发现了一个简单的工作方式。
我去了dataTables jQuery页面,找到了&#34;处理&#34;选项...我刚将其添加到选项中:
DT::datatable(TriInfo(),options = list(paging=FALSE, searching=FALSE, processing=FALSE))
它终于消失了。
答案 1 :(得分:0)
如果闪亮认为您使用的是shiny::dataTableOutput()
而不是DT::dataTableOutput()
,则可能会发生这种情况。
如果您在服务器中明确使用DT::renderDataTable()
和DT::dataTableOutput()
,那么您将避免此问题。