1
这是关于此链接中提供的列渲染示例(4.4)的Q. http://rstudio.github.io/DT/options.html闪亮列渲染错误
我已经实现上述示例代码缩写字符串宽度大于100个字符使用第一100个字符加上省略号(...),以及完整的字符串时将鼠标悬停被作为工具提示显示细胞。只要具有自定义呈现的列在其中包含全文,此功能就可以正常工作。但是,当它遇到空单元格时,不会显示表格,并在闪亮的浏览器上显示“正在处理...”。在禁用此自定义渲染时,我可以按照预期显示带有空字段的表。 有没有人有类似的问题,有任何解决这个问题的建议?
以下是我的自定义列渲染代码。
output$PM_output <- DT::renderDataTable(
expr = DT::datatable(PubmedOutput(PubmedSearch()),
class = 'cell-border stripe compact hover',
escape = F, selection = 'multiple',
options = list(
initComplete = JS("function(settings, json) {",
"$(this.api().table().header()).css({
'background-color': '#303030',
'color': '#FFFF00'});","}"),
autoWidth = T,
LengthMenu = c(5, 30, 50),
columnDefs = list(list(
targets = 6,
render = JS(
"function(data, type, row, meta) {",
"return type === 'display' && data.length > 100 ?",
"'<span title=\"' + data + '\">' +
data.substr(0, 100) + '...</span>' : data;", "}"))),
columnDefs = list(list(
targets = c(1:8),
className = 'dt-center')),
pageLength = 1, server = T)))
生成已传递自定义渲染的列6的代码。
PM.ID <- c("26391251","26372702","26372699","26371045") # does not output table
fetch.pubmed <- entrez_fetch(db = "pubmed", id = PM.ID,
rettype = "xml", parsed = T)
abstracts = xpathApply(fetch.pubmed, '//PubmedArticle//Article', function(x) xmlValue(xmlChildren(x)$Abstract))
abstracts # ID 26372702, 26372699 has no abstract. and returns NA
任何输入和建议。 P.S:是否有更好的方法来显示除省略号/工具提示以外的数据? 该代码太大而无法将其全部粘贴,因此仅挑选了我注意到该问题的部分。我希望它有帮助。
这是传递参数的正确方法?我没有得到任何显示'columnDefs = list(list(' ' targets = 6,' 'render = JS(' '“function(data,type,row,meta){”,' ''return type ==='display'“,' ''typeof data ==='string'&& data.length> 100?”,' '''''+' 'data.substr(0,100)+'...':data;”,“}”))),' – user5249203
'“return type ==='display'&& data.length > 100?“,” '“typeof data ==='string'”,'This不显示任何文本。上面的注释中的代码显示第6列的“True”。请让我知道,如果我错误地传递参数。谢谢 – user5249203
Hii yuhi,非常感谢。实现你编辑过的代码给出了一个弹出式警告''datatables.net/manual/tech-notes/4的行0检查注释未知参数6'。当我单击确定时,它不会在第6列中显示文本。所以,我按照文本注释中描述的疑难解答步骤操作。我试图实现'defaultContent:“”'作为null列6没有显示任何表。请在Q. – user5249203