- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在遵循此页面中的示例:Expanding and collapsing child rows in Shiny DataTable以 Shiny 的方式呈现包含子行的数据表。我已经能够调整代码以适合我的数据集,但无法渲染嵌套子行[包含在 data_today
的嵌套列 y
中]。到目前为止,我只成功地呈现了列名称。感谢任何帮助,因为我编写 JavaScript 的经验为零,并且无法弄清楚为什么嵌套行不呈现。
# call back
callback <- DT::JS("table.column(1).nodes().to$().css({cursor: 'pointer'});",
"// Format the nested table into another table",
"var childId = function(d){",
" var tail = d.slice(2, d.length - 1);",
" return 'child_' + tail.join('_').replace(/[\\s|\\.]/g, '_');",
"};",
"var format = function (d) {",
" if (d != null) {",
" var id = childId(d);",
" var html = ",
" '<table class=\"display compact\" id=\"' + id + '\"><thead><tr>';",
" for (var key in d[d.length-1][0]) {",
" html += '<th>' + key + '</th>';",
" }",
" html += '</tr></thead></table>'",
" return html;",
" } else {",
" return '';",
" }",
"};",
"var rowCallback = function(row, dat, displayNum, index){",
" if($(row).hasClass('odd')){",
" for(var j=0; j<dat.length; j++){",
" $('td:eq('+j+')', row).css('background-color', 'papayawhip');",
" }",
" } else {",
" for(var j=0; j<dat.length; j++){",
" $('td:eq('+j+')', row).css('background-color', 'lemonchiffon');",
" }",
" }",
"};",
"var headerCallback = function(thead, data, start, end, display){",
" $('th', thead).css({",
" 'border-top': '3px solid indigo',",
" 'color': 'indigo',",
" 'background-color': '#fadadd'",
" });",
"};",
"var format_datatable = function (d) {",
" var dataset = [];",
" var n = d.length - 1;",
" for (var i = 0; i < d[n].length; i++) {",
" var datarow = $.map(d[n][i], function (value, index) {",
" return [value];",
" });",
" dataset.push(datarow);",
" }",
" var id = 'table#' + childId(d);",
" var subtable = $(id).DataTable({",
" 'data': dataset,",
" 'autoWidth': true,",
" 'deferRender': true,",
" 'info': false,",
" 'lengthChange': false,",
" 'ordering': d[n].length > 1,",
" 'order': [],",
" 'paging': false,",
" 'scrollX': false,",
" 'scrollY': false,",
" 'searching': true,",
" 'sortClasses': false,",
" 'rowCallback': rowCallback,",
" 'headerCallback': headerCallback,",
" 'columnDefs': [{targets: '_all', className: 'dt-center'}]",
" });",
"};",
"table.on('click', 'td.details-control', function () {",
" var td = $(this),",
" row = table.row(td.closest('tr'));",
" if (row.child.isShown()) {",
" row.child.hide();",
" td.html('⊕');",
" } else {",
" row.child(format(row.data())).show();",
" td.html('⊖');",
" format_datatable(row.data());",
" }",
"});"
)
# data set
data_today <- structure(list(Player = "Anthony Davis", title = "Anthony Davis (rest) will sit out the Lakers' preseason finale on Friday.",
news = "LeBron James will join him on the sidelines, after the pair looked terrific together during an easy win on Wednesday. Davis already tweaked his thumb this preseason, so his fantasy owners should be thrilled that he's sitting out this exhibition.",
Date = structure(18186, class = "Date"), y = list(structure(list(
title = c("Anthony Davis (right thumb) suited up on Wednesday and had eight points, 10 rebounds, eight assists, two blocks and one steal in 28 minutes vs. the Warriors.",
"Anthony Davis (thumb) will play in Wednesday's preseason game against the Warriors.",
"Anthony Davis (right thumb) went through a full practice on Tuesday and hopes to be cleared for Wednesday's preseason game against the Warriors.",
"Anthony Davis (right thumb) went through a full practice on Tuesday and hopes to be cleared for Wednesday's preseason game against the Warriors.",
"Late Monday night the Lakers announced that Anthony Davis suffered a sprained right thumb during the team's game against the Nets Saturday in China.",
"An MRI on Anthony Davis' right thumb came back clean.",
"Anthony Davis is now expected to receive an MRI on his right thumb on Monday, instead of Sunday.",
"According to Shams Charania of The Athletic, initial exams on Anthony Davis' right thumb showed no ligament damage, and AD is believed to be dealing with a Grade 1 sprain.",
"Updating a previous item, Anthony Davis will have diagnostic tests on his sprained right thumb upon his return to Los Angeles.",
"Anthony Davis sprained his right thumb in Saturday's preseason game vs. Brooklyn and did not return.",
"Anthony Davis contributed 16 points, two rebounds, five assists, one steal, two blocks and one turnover across 25 minutes during Thursday's preseason loss to the Nets.",
"Anthony Davis had a superb preseason debut, scoring 22 points (9-of-16 FGs, 4-of-6 FTs) with 10 rebounds, two assists and one steal in 18 minutes against the Warriors."
), news = c("The player with the highest ADP in Yahoo leagues gave owners a scare when he dinged his thumb this preseason. It was a minor Grade-1 sprain, fortunately, and being cleared for an exhibition is all we need to trust that he's fine -- he looked great, despite the shooting line at 3-of-9 without any treys. He provides plug-and-play greatness alongside LeBron James, who should make life even easier for AD than it was in New Orleans.",
"He got in a full practice yesterday without experiencing a setback, so he'll be cleared for tonight's game and is obviously in no danger of missing the regular-season opener. As long as he's healthy, he'll be an extremely fun player to own this season.",
"Davis wore a wrap on his right thumb and said he felt fine after getting through Tuesday's practice, although we wouldn't be shocked to see him get held out of tomorrow's exhibition. He'll be good to go for opening night, though, and while Karl-Anthony Towns makes for a safer No. 1 overall selection; AD offers the most upside.",
"Davis wore a wrap on his right thumb and said he felt fine after getting through Tuesday's practice, although we wouldn't be shocked to see him get held out of tomorrow's exhibition. He'll be good to go for opening night, though, and while Karl-Anthony Towns makes for a safer No. 1 overall selection; AD offers the most upside.",
"The initial results, which were made public Monday afternoon, came back clean so Davis and the Lakers were able to breathe a sigh of relief. The perennial All-Star is considered to be day-to-day, and it's worth noting that he took some shots during pregame without any kind of wrap/protection on his injured thumb. The Lakers open their regular season a week from Tuesday against the Clippers.",
"The MRI was just confirmation after initial tests came back clean as well. This is a huge relief for both the Lakers and for fantasy owners, but we wouldn't be surprised if the franchise held him out for the rest of preseason to let his Grade 1 sprain properly heal. He will definitely sit out on Monday night against the Warriors according to Chris Haynes of Yahoo Sports, and LeBron James (rest) will join him on the sidelines",
"The Lakers just returned from a long flight back from China, so they won't make their superstar report to their medical facilities. Initial exams reportedly showed no ligament damage, but we'll get official confirmation on that once the MRI results are announced. There's a decent chance AD will skip Monday's preseason game against the Warriors, but as of right now, this appears to be a fairly minor injury.",
"Per Charania, Davis will undergo an MRI on Sunday to confirm the diagnosis. The Lakers' next preseason contest is Monday vs. Golden State. LA then closes out its preseason schedule with two more games against the Warriors (Wednesday at home and Friday in Golden State). It's safe to assume the Lakers will rest AD this week, but as long as he is only dealing with a Grade 1 sprain, he should be good to go by opening night (Tuesday, Oct. 22). GM's who have already drafted Davis can breathe a sigh of relief.",
"Davis sprained his thumb in the first quarter of Saturday's preseason loss to the Nets while going for a block. After heading to the locker room, AD returned to the bench with his thumb wrapped in ice and was ruled out of the contest. Unfortunately, there is no X-ray machine at the Shenzhen arena where the game was played, thus the delay in getting test results. The Lakers play the Warriors on Monday at Staples Center, so we should have an update on his status shortly.",
"It appeared AD injured the thumb going up to block a shot at the rim early in the first quarter. He returned to the bench later in the first quarter with an ice pack wrapped around his thumb. It's just a meaningless preseason contest, so the Lakers obviously were going to err on the side of caution. Hopefully, it's just a minor issue. We'll stay tuned for an update. The Lakers' next preseason contest is Monday vs. Golden State.",
"AD is going to be a monster in his age-26 season, and with the Lakers' frontcourt being rather thin, he may not have the luxury of seeing many load management games this season. If Davis didn't have a history of health concerns, he'd be unanimously viewed as the clear-cut No. 1 option on draft day, but him playing for a competitive team should give him some extra incentive to play through pain. LeBron James finished with 20 points, six rebounds, two assists, two triples and one turnover in 25 minutes.",
"Davis manhandled the shorthanded Warriors frontcourt on Saturday and only needed the first half to do so. The Lakers have talked about funneling the offense through AD this season, and they got off to a good start with that here. He took six more shots than the next closest starter (LeBron with 10). AD is primed for another monster fantasy season."
), Date = structure(c(18186, 18185, 18184, 18184, 18184,
18183, 18182, 18181, 18181, 18181, 18179, 18174), class = "Date"),
Time = c("1:17 AM", "2:55 PM", "5:34 PM", "5:34 PM",
"12:55 AM", "2:51 PM", "3:51 PM", "1:56 PM", "12:11 PM",
"9:28 AM", "12:23 PM", "10:31 PM")), class = "data.frame", row.names = c(NA,
-12L)))), class = "data.frame", row.names = c(NA, -1L))
library(DT)
library(tidyverse)
library(shiny)
shinyApp(
ui = fluidPage(
DT::dataTableOutput('tbl')
),
server = function(input, output) {
output$tbl = DT::renderDataTable(
datatable({
cbind(' ' = '⊕', data_today)},
escape = -2,
options = list(
columnDefs = list(
list(visible = FALSE, targets = c(0,6)),
list(orderable = FALSE, className = 'details-control', targets = 1)
)
),
callback = JS(callback)
)
)
}
)
最佳答案
我认为 id 中应该避免使用引号、逗号和括号。所以使用这一行:
" return 'child_' + tail.join('_').replace(/[\\s|\\.|'|,|\\(|\\)]/g, '_');"
而不是
" return 'child_' + tail.join('_').replace(/[\\s|\\.]/g, '_');"
关于javascript - R Shiny - 数据表中的子行(行数据未呈现),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58262376/
猫f1.txt阿曼维沙尔阿杰贾伊维杰拉胡尔曼尼什肖比特批评塔夫林现在输出应该符合上面给定的条件 最佳答案 您可以在文件读取循环中设置一个计数器并打印它, 计数=0 读取行时做 让我们数一数++ if
我正在尝试查找文件 1 和文件 2 中的共同行。如果公共(public)行存在,我想写入文件 2 中的行,否则打印文件 1 中的非公共(public)行。fin1 和 fin2 是这里的文件句柄。它读
我有这个 SQL 脚本: CREATE TABLE `table_1` ( `IDTable_1` int(11) NOT NULL, PRIMARY KEY (`IDTable_1`) );
我有 512 行要插入到数据库中。我想知道提交多个插入内容是否比提交一个大插入内容有任何优势。例如 1x 512 行插入 -- INSERT INTO mydb.mytable (id, phonen
如何从用户中选择user_id,SUB(row, row - 1),其中user_id=@userid我的表用户,id 为 1、3、4、10、11、23...(不是++) --id---------u
我曾尝试四处寻找解决此问题的最佳方法,但我找不到此类问题的任何先前示例。 我正在构建一个基于超本地化的互联网购物中心,该区域分为大约 3000 个区域。每个区域包含大约 300 个项目。它们是相似的项
preg_match('|phpVersion = (.*)\n|',$wampConfFileContents,$result); $phpVersion = str_replace('"','',
我正在尝试创建一个正则表达式,使用“搜索并替换全部”删除 200 个 txt 文件的第一行和最后 10 行 我尝试 (\s*^(\h*\S.*)){10} 删除包含的前 10 行空白,但效果不佳。 最
下面的代码从数据库中获取我需要的信息,但没有打印出所有信息。首先,我知道它从表中获取了所有正确的信息,因为我已经在 sql Developer 中尝试过查询。 public static void m
很难说出这里问的是什么。这个问题是含糊的、模糊的、不完整的、过于宽泛的或修辞性的,无法以目前的形式得到合理的回答。如需帮助澄清此问题以便重新打开它,visit the help center 。 已关
我试图在两个表中插入记录,但出现异常。您能帮我解决这个问题吗? 首先我尝试了下面的代码。 await _testRepository.InsertAsync(test); await _xyzRepo
这个基本的 bootstrap CSS 显示 1 行 4 列: Text Text Text
如果我想从表中检索前 10 行,我将使用以下代码: SELECT * FROM Persons LIMIT 10 我想知道的是如何检索前 10 个结果之后的 10 个结果。 如果我在下面执行这段代码,
今天我开始使用 JexcelApi 并遇到了这个:当您尝试从特定位置获取元素时,不是像您通常期望的那样使用sheet.getCell(row,col),而是使用sheet.getCell(col,ro
我正在尝试在我的网站上开发一个用户个人资料系统,其中包含用户之前发布的 3 个帖子。我可以让它选择前 3 条记录,但它只会显示其中一条。我是不是因为凌晨 2 点就想编码而变得愚蠢? query($q)
我在互联网上寻找答案,但找不到任何答案。 (我可能问错了?)我有一个看起来像这样的表: 我一直在使用查询: SELECT title, date, SUM(money) FROM payments W
我有以下查询,我想从数据库中获取 100 个项目,但 host_id 多次出现在 urls 表中,我想每个 host_id 从该表中最多获取 10 个唯一行。 select * from urls j
我的数据库表中有超过 500 行具有特定日期。 查询特定日期的行。 select * from msgtable where cdate='18/07/2012' 这将返回 500 行。 如何逐行查询
我想使用 sed 从某一行开始打印 n 行、跳过 n 行、打印 n 行等,直到文本文件结束。例如在第 4 行声明,打印 5-9,跳过 10-14,打印 15-19 等 来自文件 1 2 3 4 5 6
我目前正在执行验证过程来检查用户的旧密码,但问题是我无法理解为什么我的查询返回零行,而预期它有 1 行。另一件事是,即使我不将密码文本转换为 md5,哈希密码仍然得到正确的答案,但我不知道为什么会发生
我是一名优秀的程序员,十分优秀!