Ich möchte fragen, ob es möglich ist, ein Bestätigungsdialogfeld, bestehend aus zwei Schaltflächen, glänzend zu haben. Angenommen, ich klicke auf eine Schaltfläche Löschen, dann wird das Dialogfeld angezeigt. Benutzer wählen die Auswahl und zurück. Die App handelt nach der Benutzerwahl.Shiny: Wie erstelle ich ein Bestätigungsdialogfeld
Antwort
ich Teil des Codes geändert
js_string <- 'confirm("Are You Sure?");'
session$sendCustomMessage(type='jsCode', list(value = js_string))
zu nennen
, um den Bestätigungsdialog anstelle des Alarmdialogfelds aufzurufen. Dann
tags$script(
HTML('
Shiny.addCustomMessageHandler(
type = "jsCode"
,function(message) {
Shiny.onInputChange("deleteConfirmChoice",eval(message.value));
})
')
)
den Wert durch das Bestätigungsdialogfeld zurück zu senden. Dann habe ich einfach den Wert der Eingabe $ deleteConfirmChoice überprüft, um festzustellen, welche Aktion ausgeführt werden soll. Vielen Dank! Ich verstehe jetzt, wie man Nachrichten von und zu R und Javascript sendet und empfängt.
aktualisieren mit sweetalertR
#install_github("timelyportfolio/sweetalertR")
library(shiny)
library(sweetalertR)
runApp(shinyApp(
ui = fluidPage(
actionButton("go", "Go"),
sweetalert(selector = "#go", text = "hello", title = "world")
),
server = function(input, output, session) {
}
))
Beispiel 1
Sie können so etwas tun, beachten Sie, dass der Code von Demo on submit button with pop-up (IN PROGRESS)
rm(list = ls())
library(shiny)
ui =basicPage(
tags$head(
tags$style(type='text/css',
"select, textarea, input[type='text'] {margin-bottom: 0px;}"
, "#submit {
color: rgb(255, 255, 255);
text-shadow: 0px -1px 0px rgba(0, 0, 0, 0.25);
background-color: rgb(189,54,47);
background-image: -moz-linear-gradient(center top , rgb(238,95,91), rgb(189,54,47));
background-repeat: repeat-x;
border-color: rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.1) rgba(0, 0, 0, 0.25);
}"
),
tags$script(HTML('
Shiny.addCustomMessageHandler("jsCode",
function(message) {
eval(message.value);
}
);'
))
)
,
textInput(inputId = "inText", label = "", value = "Something here")
,
actionButton(inputId = "submit", label = "Submit")
#
# alternative approach: button with pop-up
# , tags$button("Activate", id = "ButtonID", type = "button", class = "btn action-button", onclick = "return confirm('Are you sure?');")
,
tags$br()
,
tags$hr()
,
uiOutput("outText")
)
server = (
function(session, input, output) {
observe({
if (is.null(input$submit) || input$submit == 0){return()}
js_string <- 'alert("Are You Sure?");'
session$sendCustomMessage(type='jsCode', list(value = js_string))
text <- isolate(input$inText)
output$outText <- renderUI({
h4(text)
})
})
}
)
runApp(list(ui = ui, server = server))
genommen wird
Beispiel 2
Mit ShinyBS
Paket
rm(list = ls())
library(shiny)
library(shinyBS)
campaigns_list <- letters[1:10]
ui =fluidPage(
checkboxGroupInput("campaigns","Choose campaign(s):",campaigns_list),
actionLink("selectall","Select All"),
bsModal("modalExample", "Yes/No", "selectall", size = "small",wellPanel(
actionButton("no_button", "Yes"),
actionButton("yes_button", "No")
))
)
server = function(input, output, session) {
observe({
if(input$selectall == 0) return(NULL)
else if (input$selectall%%2 == 0)
{
updateCheckboxGroupInput(session,"campaigns","Choose campaign(s):",choices=campaigns_list)
}
else
{
updateCheckboxGroupInput(session,"campaigns","Choose campaign(s):",choices=campaigns_list,selected=campaigns_list)
}
})
}
runApp(list(ui = ui, server = server))
Edit für Aprikose
rm(list = ls())
library(shiny)
library(shinyBS)
campaigns_list <- letters[1:10]
ui =fluidPage(
checkboxGroupInput("campaigns","Choose campaign(s):",campaigns_list),
actionLink("selectall","Select All"),
bsModal("modalExample", "Yes/No", "selectall", size = "small",wellPanel(
actionButton("yes_button", "Yes"),
actionButton("no_button", "No")
))
)
server = function(input, output, session) {
observeEvent(input$no_button,{
updateCheckboxGroupInput(session,"campaigns","Choose campaign(s):",choices=campaigns_list)
})
observeEvent(input$yes_button,{
updateCheckboxGroupInput(session,"campaigns","Choose campaign(s):",choices=campaigns_list,selected=campaigns_list)
})
}
runApp(list(ui = ui, server = server))
Vielen Dank. Will es studiert haben ... – freshman
@Porkchop Hallo Ich habe versucht, Ihr zweites Beispiel mit glänzenden BS zu verwenden. Als ich das Beispiel ausführte, stellte ich fest, dass die Kontrolle der Auswahl immer noch bei der "Selectall" -Links liegt und nicht bei den "Ja" - oder "Nein" -Optionen der bsModals. Ist es möglich, das Steuerelement an ja oder nein weiterzugeben, selbst wenn selectall alle Optionen auswählt, wenn ich im modalen Fenster auf Nein klicke, sollte die Auswahl der Kontrollkästchen zurückgesetzt werden. – Apricot
@Apricot Die Bearbeitung für Sie oben sehen –
- 1. GWT-Bestätigungsdialogfeld
- 2. Wie erstelle ich ein PDF?
- 3. Wie erstelle ich ein jqGrid
- 4. Wie erstelle ich ein Kartensymbol?
- 5. Wie erstelle ich ein Leinwandauswahlwerkzeug?
- 6. Wie erstelle ich ein Frühlingsprojekt?
- 7. Wie erstelle ich ein Sternenbewertungssystem?
- 8. Wie erstelle ich ein Singleton?
- 9. Wie fügt man ein Bildsymbol zu einem Bestätigungsdialogfeld hinzu?
- 10. Wie erstelle ich ein Meldungsfeld mit tkinter?
- 11. Schienen/Haml: Wie erstelle ich ein Postformular?
- 12. Wie erstelle ich ein Cocoa-Fenster programmgesteuert?
- 13. Wie erstelle ich ein Verzeichnis in Lua?
- 14. Wie erstelle ich ein wiederholbares Indexskript?
- 15. Wie erstelle ich ein Halbfenster-Ansichtsmenü?
- 16. WiX - Wie erstelle ich ein Unterverzeichnis?
- 17. Wie erstelle ich ein benutzerdefiniertes Outlook-Objekt?
- 18. Wie erstelle ich ein schwarzes UIImage?
- 19. Java - Wie erstelle ich ein benutzerdefiniertes Dialogfeld?
- 20. Wie erstelle ich ein Konfigurations-Skript?
- 21. Wie erstelle ich ein OpenGL Live Wallpaper?
- 22. Wie erstelle ich ein Highlight bei mouseover?
- 23. Wie erstelle ich ein serverseitiges zeitgesteuertes Ereignis?
- 24. C Präprozessor: Wie erstelle ich ein Zeichenliteral?
- 25. Wie erstelle ich ein Bild von UILabel?
- 26. Wie erstelle ich ein Sinuswellensignal in Cocoa?
- 27. Wie erstelle ich ein Array von Namespaces?
- 28. Wie erstelle ich ein JSON-Array
- 29. Wie erstelle ich ein überlappendes Balkendiagramm?
- 30. Wie erstelle ich ein Observable in Android?
[ShinyBS] (http://cran.r-project.org/web/packages/shinyBS/shinyBS.pdf) könnte einen Blick wert sein? – tospig
Ich kann kein Fenster mit 2 Tasten machen. Weißt du wie? – freshman