簡體   English   中英

R Shiny DT 渲染文本和輸入沒有換行符

[英]R Shiny DT render text and input without linebreaks

我正在嘗試在 Shiny DT 中渲染任何類型的 R Shiny 輸入,但是我想避免換行。 如果我將一些文本和 html 標簽與 shinyInput 函數連接起來,則文本和輸入都會被渲染,但在輸入之前和之后會發生換行符。

我認為根本原因是 div 標簽,但谷歌搜索似乎添加了 style="display:inline;" css 代碼應該解決它,但它沒有,它甚至破壞了寬度定義。

你知道如何在同一個單元格上獲取之前的文本、div 和之后的文本嗎?

下面是一些可以玩的代碼。

library(DT)

ui <- basicPage(
  h2("The mtcars data"),
  DT::dataTableOutput("mytable")
)

server <- function(input, output) {
  
  shinyInput <- function(FUN, len, id, ...) {
    inputs <- character(len)
    for (i in seq_len(len)) {
      inputs[i] <- as.character(FUN(paste0(id, i), ...))
    }
    inputs
  }
  
  mtcarsx <- data.frame(mtcars, newvar=
                         paste0(
                           "tex before "
                           ,shinyInput(checkboxInput,nrow(mtcars),"mychbx",label="",value=FALSE,width=NULL),
                           " text after"))

  
  output$mytable = DT::renderDataTable({
    DT::datatable(mtcarsx, 
                  escape = FALSE, 
                  selection = 'none', 
                  rownames = FALSE, 
                  extensions = 'RowGroup', 
                  options = list(searching = FALSE, 
                                 ordering  = FALSE,
                                 rowGroup = list(dataSrc=c(1)),
                                 columnDefs = list(list(visible=FALSE, targets=c(1)))
                                 ))
  })
  
}

shinyApp(ui, server)

沒錯,您需要將包裝復選框元素的 div 更改為display:inline 你說這並不能解決它,因為它破壞了寬度定義。 也許我錯過了什么? 我沒有看到寬度列的變化。

tags$style("
             #mytable tr td div.form-group {
               display: inline;
             }
             #mytable tr td div.checkbox {
               display: inline; 
             }
             #mytable tr td div.checkbox label {
               padding: 0;
             }
             #mytable tr td div.checkbox input {
               position: relative;
               margin: 0;
             }")

如果之前和之后的文本是不變的,您可以在afterbefore使用 css 偽類來添加該內容。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM