【问题标题】:Is it possible to add tickboxes in a DT datatable?是否可以在 DT 数据表中添加复选框?
【发布时间】:2018-12-18 21:53:13
【问题描述】:

我想问是否可以在DT 数据表中添加带有复选框的列。我尝试使用rep(TRUE,5),它适用于rhandsontable,但不适用于DT

library(DT)
datatable(
data.frame(Sel. = rep(TRUE,5),
           Label=paste("Test",as.integer(1:5)),
           Marg=rep(5),
           Avail.=as.integer(rep.int(5,5)),
           Sel =as.integer(rep.int(5,1)),
           stringsAsFactors = FALSE))

【问题讨论】:

    标签: r dt


    【解决方案1】:

    是的,这是可能的。

    我们可以为此使用datatable 扩展名Select(有关详细信息,请参阅here)。

    这是一个最小的 RMarkdown 示例:

    ---
    title: "Untitled"
    output: html_document
    ---
    
    ```{r}
    library(DT)
    library(tidyverse)
    datatable(
        iris %>% rowid_to_column("Row") %>% mutate(Row = ""),
        rownames = FALSE,
        extensions = "Select",
        options = list(
            columnDefs = list(list(className = "select-checkbox", targets = 0, orderable = FALSE)),
            select = list(style = "os", selector = "td:first-child")))
    ```
    

    这会产生

    几个cmets:

    1. 我们通过extensions = "Select" 加载Select 扩展。有关潜在兼容性问题的详细信息,请参阅here

    2. 我们添加行号作为新列,然后将所有行号设置为空字符串"";这有点 hack-y,但如果我们保留行名(=行号),它们将复选框一起显示。我发现创建一个新的空列,然后设置 rownames = FALSE 确保我们在空列中只有复选框。然后columnDefs 中的orderable = FALSE 确保此列不可排序。

    【讨论】:

    • 这是一个特殊的答案。Tnx
    • 非常感谢:-) 非常欢迎您@firmo23!
    • 嘿一个小澄清..如何同时选择多行?现在我只能一个。
    • @firmo23 如果我想选择多个项目,我需要在我的 Mac 上按住命令键。在 Windows 机器上,我相信它应该是控制键。或者使用 shift 来选择多个相邻的项目。
    • 酷!再次Tnx!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-04-22
    • 2022-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-17
    • 1970-01-01
    相关资源
    最近更新 更多