添加下载按钮破坏了我在R中的数据表的文本截断/悬停功能

如何解决添加下载按钮破坏了我在R中的数据表的文本截断/悬停功能

我正尝试使用DT包的R来显示数据集,该包可让您呈现javascript数据表。其中两列包含很长的文本,因此我的同事写了一些JS来截断文本,同时将鼠标悬停在单元格上时可以看到整个文本。我们还希望用户能够点击一个下载按钮进行过滤。但是,当我添加代码以创建下载按钮时,它会中断文本截断。我想以某种方式截断文本并下载数据。

功能如下:

library(DT)

render_dt <- function(.data)) {

  .data %>%
    datatable(caption = "Major Thrusts (hover for full text)",############### If you get rid of these lines the javascript code works #############
              extensions = 'Buttons',escape = FALSE,options = list(dom = 'Bfrtip',buttons = c('csv','excel')
                             ),######################                                                  #############
              list(columnDefs = list(list(
                targets = c(7,8),render = JS(
                  "function(data,type,row,meta) {","return type === 'display' && data.length > 100 ?","'<span title=\"' + data + '\">' + data.substr(0,100) + '...</span>' : data;","}"
                )))))

}

我也尝试将按钮添加为原义的javasript,但是我收到一个错误,提示JS()输入必须是字符串向量。像这样:

render_dt <- function(.data)) {

  .data %>%
    datatable(caption = "Major Thrusts (hover for full text)",list(columnDefs = list(list(
                targets = c(7,"}"
                ))))) %>% 
    JS(".DataTable({","dom: 'Bfrtip',","buttons: [","'copy','csv','excel'","]","})")

}

这是一些示例数据:

structure(list(Service = structure(c(9L,5L),.Label = c("Defense Logistics Agency","Defense Information Systems Agency","United States Special Operations Command","Office of the Secretary Of Defense","Missile Defense Agency","Defense Advanced Research Projects Agency","Navy","Army","Air Force"),class = "factor"),`Program Element` = c("GPS IIIC","Ballistic Missile Defense Command and Control,Battle Management & Communication"
),Year = c(2019,2020),Spending = c(451.889,317.731),`Project Title` = c("GPS IIIC","Command & Control,Battle Management,Communications (C2BMC)"
),`Thrust Title` = c("GPS III Follow-On Development","C2BMC Development and Deployment"
),`Thrust Description` = c("The program will utilize RDT&E funds to develop and deliver SV11 12,conduct the non recurring engineering (NRE) of developing risk reducing simulators,support test equipment,and conducting the systems engineering associated with delivering the new capabilities required of GPS III Follow On including backward compatibility,dual band TT&C,integration of Government Furnished Equipment (GFE) hosted payloads,and Regional Military Protection (RMP),which provides the ability to deliver high power regional M Code signals in specific areas of intended effect.","Provides funding for incremental development and deployment of C2BMC capabilities that link sensors and shooters to enable integrated BMDS capabilities,integrate BOA with the BMDS architecture to enhance missile tracking capabilities and enable much earlier cueing of radars and shooters,and fulfill Cybersecurity requirements.  The Enterprise Sensors Laboratory (ESL) and Experimentation Laboratory (X Lab) produce key prototypes for further maturation in the C2BMC capability Spiral development process and enables integrated experimentation for C2BMC,ESL,OPIR products,and other BMDS elements through robust connectivity to simulation frameworks,weapon systems,sensors,and operational assets. Recurring accomplishments include iterative development and procurement cycles for hardware,software,network capability system engineering tasks,and artifacts for technical engineering reviews; participation in test readiness reviews,pre test engineering and analysis of ground and flight test results,wargames,and exercises in accordance with the BMDS Integrated Master Test Plan (IMTP); site planning,scheduling and hardware acquisition to support planned deployment of C2BMC Spirals and BMDS Overhead Persistent Infra Red (OPIR) Architecture (BOA) capabilities; updates and maintenance for C2BMC Model (BCM) BMDS simulation/stimulation (federated model) and verification scenarios for all C2BMC Spirals deployed and under development; prototyping and characterizing BOA,Discrimination,operationalization of SKA as part of Post Intercept Assessment (PIA): prototyping Robust PIA and C2BMC capabilities; design,installation and sustainment of operational sharing gateways; and collaboration with international partners to ensure future interoperability.  Specific and/or unique accomplishments for each FY are as follows:"
),Plans = c("Program office will award the Phase 2 contract in early FY 2019.  Upon contract award,the program will initiate efforts to prepare for and conduct Critical Design Review (CDR),continue development of SV11 12,and prepare for Milestone C in early 2020. Rapidly respond to implement system resiliency and situational awareness necessary to operate in the contested space domain. Activities may include,but are not limited to program office support,studies,technical analysis,prototyping,etc.","EPAA Phase 3 / EOR (Spiral 8.2 3):   Maintain ability to develop/deploy capability in response to emergent operational requirements  LRDR for Homeland Defense (Spiral 8.2 5),homeland defense focus:   Continue iterative software coding,unit testing,and interoperability testing of Spiral 8.2 5 capabilities,including LRDR and hypersonic threat detection and tracking   Initiate iterative software coding,and interoperability testing for BMDS integration with the Integrated Air and Missile Defense (IAMD) Battle Command System (IBCS)   Support developmental testing and preparation of transfer of the LRDR to the Air Force   Continue deployment of hardware and software to provide LRDR BMDS network connectivity and sensor control nodes   Increase Verification and Validation in support of BMDS capability ground testing and participation in BMDS ground tests   C2BMC Additional and Expanded Regional and Homeland Defense focus:   Design and prototype the next incremental capability addressing Additional Homeland Defense and Mid Term Discrimination requirements,inclusive of C2BMC Generation of BMD System Track (with System Level Discrimination Data Integration) for GMD Homeland Defense Engagements and Expanded Regional and Homeland Defense,inclusive of the integration of the Homeland Defense Radar Hawaii (HDR H) and an expanded interface with the OPIR enterprise,which yields additional raid handling capacity,enhanced Aegis BMD engage on capability,and expanded hypersonic defense tracking and reporting    Continue operationalization of Space based Kill Assessment (SKA) as part of PIA   Continue planning and prototyping tasks for Robust BMDS Post Intercept Assessment (PIA)   Initiate design and development of accredited models and simulations (M&S) for C2BMC and BOA spirals for participation in End to end Digital Integrated System Simulation (EDISS)   Continue design and development of Ground Test Integrated System level Simulation (GTISS)"
)),row.names = c(NA,-2L),class = c("tbl_df","tbl","data.frame"
))

解决方法

columnDefs必须在options列表中:

datatable(
  caption = "Major Thrusts (hover for full text)",extensions = 'Buttons',escape = FALSE,options = list(
    dom = 'Bfrtip',buttons = c('csv','excel'),columnDefs = list(
      list(
        targets = c(7,8),render = JS(
          "function(data,type,row,meta) {","return type === 'display' && data.length > 100 ?","'<span title=\"' + data + '\">' + data.substr(0,100) + '...</span>' : data;","}"
        )
      )
    )
  )
)

请注意,您可以使用省略号插件获得相同的结果:

datatable(
  caption = "Major Thrusts (hover for full text)",plugins = "ellipsis",render = JS("$.fn.dataTable.render.ellipsis( 100,false )")
      )
    )
  )
)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams[&#39;font.sans-serif&#39;] = [&#39;SimHei&#39;] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -&gt; systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping(&quot;/hires&quot;) public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate&lt;String
使用vite构建项目报错 C:\Users\ychen\work&gt;npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-
参考1 参考2 解决方案 # 点击安装源 协议选择 http:// 路径填写 mirrors.aliyun.com/centos/8.3.2011/BaseOS/x86_64/os URL类型 软件库URL 其他路径 # 版本 7 mirrors.aliyun.com/centos/7/os/x86
报错1 [root@slave1 data_mocker]# kafka-console-consumer.sh --bootstrap-server slave1:9092 --topic topic_db [2023-12-19 18:31:12,770] WARN [Consumer clie
错误1 # 重写数据 hive (edu)&gt; insert overwrite table dwd_trade_cart_add_inc &gt; select data.id, &gt; data.user_id, &gt; data.course_id, &gt; date_format(
错误1 hive (edu)&gt; insert into huanhuan values(1,&#39;haoge&#39;); Query ID = root_20240110071417_fe1517ad-3607-41f4-bdcf-d00b98ac443e Total jobs = 1
报错1:执行到如下就不执行了,没有显示Successfully registered new MBean. [root@slave1 bin]# /usr/local/software/flume-1.9.0/bin/flume-ng agent -n a1 -c /usr/local/softwa
虚拟及没有启动任何服务器查看jps会显示jps,如果没有显示任何东西 [root@slave2 ~]# jps 9647 Jps 解决方案 # 进入/tmp查看 [root@slave1 dfs]# cd /tmp [root@slave1 tmp]# ll 总用量 48 drwxr-xr-x. 2
报错1 hive&gt; show databases; OK Failed with exception java.io.IOException:java.lang.RuntimeException: Error in configuring object Time taken: 0.474 se
报错1 [root@localhost ~]# vim -bash: vim: 未找到命令 安装vim yum -y install vim* # 查看是否安装成功 [root@hadoop01 hadoop]# rpm -qa |grep vim vim-X11-7.4.629-8.el7_9.x
修改hadoop配置 vi /usr/local/software/hadoop-2.9.2/etc/hadoop/yarn-site.xml # 添加如下 &lt;configuration&gt; &lt;property&gt; &lt;name&gt;yarn.nodemanager.res