首页 > 解决方案 > 可过滤的列标题在 R 中的 DT 中未对齐

问题描述

我正在开发一个闪亮的应用程序,我正在使用DT包在表格中显示一些数据。下面是一些测试数据:

structure(list(UID = c("837_12612", "838_12613", "839_12616", 
"840_12668", "841_12702", "842_12825"), VoyageNo = c(9L, 9L, 
8L, 5L, 10L, 10L), EmploymentStatus = c("Unfixed", "Unfixed", 
"Unfixed", "Unfixed", "Unfixed", "Unfixed"), OpenPort = c("ROTTERDAM", 
"DAR ES SALAAM", "LAGOS (NIGERIA)", "HALDIA", "JEBEL ALI", "SANTOS"
), OpenPortDate = c("2001-01-01", "2001-01-01", "2001-01-01", 
"2001-01-01", "2001-01-01", "2001-01-01"), Cargo = c("CONDENSATE/GAS OIL/GAS OIL (FAME FREE)/JET A1", 
"GAS OIL/NAPHTHA/NAPHTHA/GASOLINE/ULSD 10 PPM", "JET A1/GAS OIL/CONDENSATE/CPP", 
"NAPHTHA/GASOLINE/JET A1/GAS OIL/GASOLINE", "JET A1/ULSD 10 PPM/GASOLINE/REFO/GASOLINE", 
"CPP/JET A1/NAPHTHA/GASOLINE/ULSD 10 PPM"), RepositionPort = c("Portname", 
"Portname", "Portname", "Portname", "Portname", "Portname"), 
    RepositionDate = c("2018-08-23", "2018-08-23", "2018-08-23", 
    "2018-08-23", "2018-08-23", "2018-08-23"), CurrentStatus = c("Prompt", 
    "Prompt", "Prompt", "Prompt", "Prompt", "Prompt"), Comments = c("Enter comments", 
    "Enter comments", "Enter comments", "Enter comments", "Enter comments", 
    "Enter comments"), Flag = c("No", "No", "No", "No", "No", 
    "No"), VesselName = c("STI Excellence", "STI Excelsior", 
    "STI Experience", "King Douglas", "STI Prestige", "STI Express"
    ), DWT = c(74613, 74665, 74665, 73666, 74996.5, 74665), Type = c("LR1 POOL", 
    "LR1 POOL", "LR1 POOL", "LR1 POOL", "LR1 POOL", "LR1 POOL"
    ), IceClass = c("N/A", "N/A", "N/A", "N", "N/A", "N/A"), 
    CompleteGMT = structure(c(17754, 17717, 17741, 17672, 17748, 
    17723), class = "Date")), row.names = c(NA, -6L), class = c("tbl_df", 
"tbl", "data.frame"))

然后,我将其渲染为具有以下参数的 DT:

datatable(x,editable=TRUE, rownames=FALSE, selection='none', options=list(scrollX=TRUE), filter='top')

当表格正确呈现时,只要我点击其中一个列过滤器,比如 DWT,对齐就会消失。见图片:在此处输入图像描述

我该如何阻止这种情况发生?

标签: rshinydt

解决方案


正如您在此处scrollX看到的那样,您看到的是一个已知问题

列过滤器的已知问题
当在表格中启用滚动时,列过滤器的位置可能会关闭,例如通过选项scrollX 和/或scrollY。外观可能会受到闪亮滑块的影响,如 #49 中所述。

请记住,如果您在RSudio -> ViewerscrollX中的表格中使用过滤器,则删除不会解决问题,但您可以在浏览器中正常使用过滤器。

#Works in a browser.
datatable(x,editable=TRUE, rownames=FALSE, selection='none', filter='top')

推荐阅读