r - 来自文本输入的表格中的R闪亮多行行
问题描述
我希望在表格的单行中显示多行文本。
文本来自文本区域输入,这意味着您可以添加多行文本。当显示在表格中时,它会重新格式化,删除多行。
MRE:
library(shiny)
library(DT)
library(shinyWidgets)
ui <- fluidPage(
titlePanel("Multi-line row in Shiny Table"),
mainPanel(
# Add Text
textAreaInput(inputId = "Long_Text", label = "TEXT:", rows = 5, resize = "both"), br(),
actionButton("Add_text", "New Text"), br(),
# Display Text as Table
DT::dataTableOutput("Text_Table")
)
)
server <- function(input, output, session) {
# Generate Reactive Text Data
Text_DF <- reactiveValues(data = data.frame(Text = character()))
# Add New Text
observeEvent(input$Add_text, {
# Combine New Text With Old Text
Text_DF$data <- rbind(Text_DF$data, data.frame(Text = input$Long_Text))
})
# Generate Table
output$Text_Table = renderDataTable({
Text_DF$data
}, escape = FALSE)
}
# Run the application
shinyApp(ui = ui, server = server)
例如,如果您输入:
1号线
2号线
3号线
第 4 行
表中的条目是:
第 1 行 第 2 行 第 3 行 第 4 行
我认为添加escape = FALSE
到renderDataTable
可以解决它,但它没有。是否有另一个可以更好地工作的表包?是否将列定义为字符?
解决方案
只需用相应的 html 标记替换代表字符串中新行的“/n”字符即可。看看我下面的解决方案。
library(shiny)
library(DT)
library(stringr)
ui <- fluidPage(
titlePanel("Multi-line row in Shiny Table"),
mainPanel(
# Add Text
textAreaInput(inputId = "Long_Text", label = "TEXT:", rows = 5, resize = "both"), br(),
actionButton("Add_text", "New Text"), br(),
# Display Text as Table
DT::dataTableOutput("Text_Table")
)
)
server <- function(input, output, session) {
# Generate Reactive Text Data
Text_DF <- reactiveValues(data = data.frame(Text = character()))
# Add New Text
observeEvent(input$Add_text, {
# Combine New Text With Old Text
Text_DF$data <- rbind(
Text_DF$data,
data.frame(Text = str_replace_all(input$Long_Text, "\n", "<br>")) # Here the hack
)
})
# Generate Table
output$Text_Table = renderDataTable({
Text_DF$data
}, escape = FALSE)
}
# Run the application
shinyApp(ui = ui, server = server)
推荐阅读
- excel - 通过月份选择器更改的动态组合图表
- html - 为什么html高度为0时整个页面的背景是彩色的?
- python - 在views.py django中更新对象不重复
- visual-studio - 如何扩展 MS Build 中的现有规则?
- python-3.x - 带有线框 matplotlib 的 3D 平面图
- amazon-web-services - 设计分区键以确保特定类型的数据进入 Kinesis 中的同一个分片
- css - Divi:自定义菜单项无法正常工作(文本颜色)
- git - 请求因错误而超时:RPC 失败;curl 18 传输已关闭,剩余未完成的读取数据
- python-3.x - Odoo:第二次创建项目截止日期时出错
- json - Azure Powershell - 部署模板验证失败 - Jtoken