如何在R Shiny中正确对齐DataTable的列?

时间:2014-04-05 17:27:13

标签: jquery r jquery-datatables shiny

this post收集我们应该定义一个具有所需对齐的alignRight CSS类:

# ui.R
sidebarLayout(...,
    mainPanel(
        tags$head(
            tags$style(".alignRight { align: right; }", media = "all", type = "text/css")
        ),
        ...     # content with call to dataTableOutput("myTable")
    )
)

然后在创建DataTable时,使用aoColumnDefs选项将所需列的类设置为alignRight

# server.R
shinyServer(
    function(input, output) {...
        output$myTable <- renderDataTable(...,
            options = list(
                aoColumnDefs = '[{"aTargets": [7, 9, 10], "sClass": "alignRight"}]'
            )
        )
    }
)

然而,这对我的DataTable没有影响,当所有列保持左对齐时。我认为一个简单的对齐问题很容易理清,但经过几个小时,显然不是这样。任何想法都会非常感激。

2 个答案:

答案 0 :(得分:5)

此:

library(shiny)

runApp(list(
  ui = basicPage(
    tags$head(tags$style(".table .alignRight {color: blue; text-align:right;}")),
    h2('The mtcars data'),
    dataTableOutput('mytable')
  ),
  server = function(input, output) {
    output$mytable = renderDataTable({
      mtcars
    }, options =list(aoColumnDefs = list(list(sClass="alignRight",aTargets=c(list(3),list(4),list(5))))  ))
  }
))

为我工作,可能会帮助您根据自己的情况为CSS建模。我只使用了blue,因为它有助于显示td格式的其他部分是否正常工作,即使可能不存在。

答案 1 :(得分:5)

以下工作正常,没有自定义类定义:

option=list(columnDefs=list(list(targets=3:5, class="dt-right")))