アクションボタンが光沢でクリックされると、カスタムメッセージ(反応性の値に応じてメッセージにミニテーブルが表示されます)を取得するにはどうすればよいですか?ここに私のコードです。メッセージは、私がrows()と呼ぶ反応テーブルを含んでいなければなりません。rをクリックしたときのカスタムメッセージ
library(shiny)
library(datasets)
library(rhandsontable)
library(data.table)
my_message= writeLines("validation is not successful. \nCheck following
commodities:\nCPCCode Commodity Year")
# This is the message I want when action button is clicked
# validation is not successful. Please check the following commodities:
#CPCCode Commodity Year
# 100 Maize 2010
# 200 Rice 2015
# 300 Tea 2016
# 400 Banana 2014
#.
#.
#.
# and so on. The table can be upto max 50 rows
ui = fluidPage(
actionButton("message", "message")
)
server = function(input,output,session){
rows= reactive({
d=data.frame(CPCCode=100, Commodity="Maize", Year= 2010)
d$Commodity = as.character(d$Commodity)
d=rbind(d, c(200, "Rice", "2015"))
d=rbind(d, c(300,"Tea", 2016))
})
observeEvent(input$message,{
if (is.null(input$message) || input$message == 0){return()}
isolate({
input$message
the_message <- paste("validation is not successful")
js_string <- 'alert("SOMETHING");'
js_string <- sub("SOMETHING",the_message,js_string)
session$sendCustomMessage(type='jsCode', list(value = js_string))
})
})
}
shinyApp(ui,server)
EDITED。これは、テーブルの最初の行のみを表示します。任意の提案は、あなたがmodalDialog
内dataTableOutput
を追加し、modalDialog
が作成された後、テーブルをレンダリングする必要がありますmodalDialog
でテーブルを表示するには
library(shiny)
library(datasets)
library(rhandsontable)
library(data.table)
my_message= writeLines("validation is not successful. \nCheck following
commodities:\nCPCCode Commodity Year")
# This is the message I want when action button is clicked
# validation is not successful. Please check the following commodities:
#CPCCode Commodity Year
# 100 Maize 2010
# 200 Rice 2015
# 300 Tea 2016
# 400 Banana 2014
#.
#.
#.
# and so on. The table can be upto max 50 rows
ui = fluidPage(
actionButton("show", "Show modal dialog")
)
server = function(input, output) {
rows= reactive({
d=data.frame(CPCCode=100, Commodity="Maize", Year= 2010)
d$Commodity = as.character(d$Commodity)
d=rbind(d, c(200, "Rice", "2015"))
d=rbind(d, c(300,"Tea", 2016))
})
# Return the UI for a modal dialog with data selection input. If 'failed'
is
# TRUE, then display a message that the previous value was invalid.
dataModal <- function(failed = FALSE) {
modalDialog(
span("Validation is not successful", rows()),
footer = tagList(
actionButton("ok", "OK")
)
)
}
observeEvent(input$show, {
showModal(dataModal())
})
observeEvent(input$ok, {
removeModal()
})
}
shinyApp(ui,server)
「モーダルダイアログ」を使用できます。 [this](https://shiny.rstudio.com/reference/shiny/latest/modalDialog.html)のリンクを参照してください。 – SBista
ありがとうございます!非常に便利 –
しかし、私の状況を関連付ける方法を混乱させるビット –