Tician Geschrieben 27. September 2018 Geschrieben 27. September 2018 Hiho, diesmal wieder in einem Thread^^ Ich habe eine Webseite in ASP.NET und bei einem Click auf einen Button in einer Tabelle müssen einige Dinge erfragt werden die (soweit ich jetzt finden konnte) das Zusammenspiel von Javascript und C# brauchen, da es mit ASP-NET eigenen Boardmitteln wohl nicht möglich ist so eine MessageBox Client-seitig aufploppen zu lassen. Mein Gedanke soweit war eigentlich erstmal die Javascript-FUnktion im 'Webseitencode' (da gibt es bestimmt einen Fachbegriff) zu erstellen: <head runat="server"> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Log_Viewer</title> <script type="text/javascript"> function confirm1(var text) { if (confirm(text) == true) { return true; } else { return false; } } </script> </head> Im CodeBehind muss ich wissen ob der User auf 'OK' oder 'Abbrechen' geklickt hat und dementsprechend weiter arbeitern: protected void GridView2_RowCommand(object sender, GridViewCommandEventArgs e) { if (e.CommandName == "Delete") { //Hier ein bisschen Code rausgeschnitten um den Inhalt der 'geklickten Zeile' zu kriegen bool userClick = confirm("Wirklich löschen?"); if (userClick == true) { //mehr code hier } } if (e.CommandName == "Edit") { //More stuff } } Das ist zumindest der Gedanke, aber mein C#-code kennt die Funktion vom Javascript natürlich nicht und ich bezweifel auch das das so funktioniert, will aber auch nicht komplett alles in Javascript schreiben. Ich steh auf dem Schlauch, wie kriege ich eine MessageBox mit Ja/Nein-Buttons und das Ergebnis vom User-Input (ob er Ja oder Nein geklickt hat) in mein C#? Zitieren
Ale:x Geschrieben 28. September 2018 Geschrieben 28. September 2018 (bearbeitet) Hey, Mal schauen ob Ich dir dabei helfen kann, aber Ich versuche es mal. Du solltest etwas allgemeines über Callbacks dir durchlesen, hatte mal einen Thread von dir Verfolgt wo du dich für Webforms anstatt MVC entschieden hattest und in Webforms gibt es ein ganz tolles PageLifceCycle In einem Callback Panel schickst du Daten an den Server (Code Behind) machst etwas und lädst nur das Callback Panel neu.. Beispielsweise wenn du eine Tabelle mit Benutzern im Callback hast, einen Benutzer löscht lädst nur die Tabelle neu. In MVC wäre das etwas leichter (für mich) function confirm1(var text) { callback.Performcallback(confirm); }; C# protected void CallbackPanel_Callback(object sender, CallbackEventArgsBase e) { if(e.Parameter == "true") { Deine Anweisung } } Kann dir nicht sagen ob es funktioniert da ich Aktuell viel mit MVC Arbeite Es gibt aber bestimmt mehrere Möglichkeiten //Nachtrag MVC Lösung sehe so aus: @Html.ActionLink("Entfernen", "DeleteAuslastung", new { onclick = "return confirm('Sind Sie sicher, dass dieser Eintrag entfernt werden soll?');" }) Der ActionLink ist nichts anderes als ein Button: OnClientClick = "return confirm('Sind Sie sicher, dass dieser Eintrag entfernt werden soll?');" }) Mit der OnClientClick Methode wird vom Browser aus gefragt was du mit ja / Nein bestätigen kannst Und ansonsten mit einer OnClick Methode im Button deine CodeBehind (C#) Methoden ausführen. https://docs.microsoft.com/en-us/dotnet/api/system.web.ui.webcontrols.button.onclick?view=netframework-4.7.2 Viele Grüße Bearbeitet 28. September 2018 von Ale:x Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.