如何解决添加下载按钮破坏了我在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 举报,一经查实,本站将立刻删除。