自创的桌子有光泽

时间:2014-05-02 19:36:11

标签: html r shiny shiny-server

我想知道如何创建一个(html)表格单元格,其中动态内容有光泽? 现在我使用以下组合:

server.R

output$desc <- renderTable(
  hdx.desc()
)

ui.R

tabsetPanel(
  tabPanel("Description", tableOutput("desc"))
)

这很有效。我想设置一些单元格的链接,并添加一些额外的布局设置到表格,如粗体,没有边框等,也不想要前面的行号。

我该怎么做?我尝试了HTML()命令,但它确实没有用。 谢谢你的帮助。

2 个答案:

答案 0 :(得分:4)

如果你想使用renderTable,最简单的方法就是使用css。删除行号需要将选项include.rownames = FALSE传递给print.xtable...函数中有一个renderTable参数可以执行此操作。您可以在表中包含html并使用sanitize.text.function参数。

runApp(list(
  ui = bootstrapPage(
    tableOutput("myTable")
    , tags$head(tags$style(type="text/css", 
"#myTable table th td {
border: 1px solid black !important;
}
#myTable table th
{
background-color:green;
color:white;
}"
))

  ),
  server = function(input, output) {
    output$myTable <- renderTable({ 
      temp = c(runif(4), 
               as.character(tags$a(id = 'myId', href='http://www.example.com', runif(1)))
               )
      data.frame(date=seq.Date(Sys.Date(), by=1, length.out=5), temp = temp)
      }, include.rownames = FALSE, sanitize.text.function = function(x) x)
  }
))

或者查看允许您使用http://datatables.net/renderDataTable

答案 1 :(得分:0)

如果你知道你的桌子是静态的,并且只有内容是动态的,你可以按照我在此处注释的方法进行注释:Shiny - populate static HTML table with filtered data based on input

简而言之,我构建一个静态html表并将其包装在一个单独的R文件中的函数中,在服务器中将其源代码并使用新过滤的数据在renderUI()函数中调用它。因此,表内容随用户输入而更新。

未来项目将是一个允许用户以动态方式生成静态html表的函数,例如,创建具有X行,Y列,rownames [],colnames []等的表的函数。如果我成功了,我会在这里发布我的解决方案。