Wenn ich mit Javascript eine Messagebox öffne habe ich ja einen Rückgabewert. Nun, wie kann ich diesen mit C# ansprechen? Ich muss ja jenachdem, was der User ausgewählt hat, eine andere aktion ausführen...
Danke für den Hinweis! Habe hier im Forum mal gesucht und habe etwas gefunden. Aber nun habe ich ein Problem. Ich kann ja nicht eine MessageBox öffnen wie in einem Windows Form. ich arbeite mit webforms.
Hier wird meine messagebox aufgerufen:
btnDelete.Attributes.Add("onClick", "return confirm('Soll das Problem wirklich gelöscht werden?');");
Und lauft Forum sollte folgendes möglich sein:
if (MessageBox.Show("Frage - Text", "Überschrift", MessageBoxButtons.YesNo) == DialogResult.Yes)
{
// Tue etwas nach Deinen belieben
}
Aber Messagebox.Show wird bei mir nicht gefunden. Was muss ich hier nehmen?
Beim nächsten Mal bitte gleich im richtigen Forum posten.
Danke
Sorry ich dachte Du suchst nach Windows Forms. Scheint ja nicht so zu sein, also vergiß meine Antwort. Um solchen Mißverständnissen vorzubeugen, solltest Du im richtigen Forum posten.
Du musst Dein Formular submitten und z.B. das Ergebniss der Messagebox in der URL mitgeben.
da komm ich nicht mit..
Es geht darum, dass wenn ich auf den button löschen klicke eine Messagebox geöffnet wird und den user fragt, ob er den eintrag wirklich löschen will...
btnDelete.Attributes.Add("onClick", "return confirm('Soll das Problem wirklich gelöscht werden?');");
Und nun möchte ich wissen, ob der user auf ja geklickt hat -> problem löschen
oder ob er nicht löschen möchte
Du kannst es auch per ClientCallback an den Server schicken.
Original von morcheba
da komm ich nicht mit..Es geht darum, dass wenn ich auf den button löschen klicke eine Messagebox geöffnet wird und den user fragt, ob er den eintrag wirklich löschen will...
btnDelete.Attributes.Add("onClick", "return confirm('Soll das Problem wirklich gelöscht werden?');");
Und nun möchte ich wissen, ob der user auf ja geklickt hat -> problem löschen
oder ob er nicht löschen möchte
wenn du den Button als submit-Button definiert hast, dann:
wenn User ja sagt/clickt, steht in onclick: return true und das Formular wird gesendet. Du brauchst nur noch den Wert des Buttons zu prüfen, dann weisst du, dass das Formular auf Aktion dieses Buttons gesendet wurde
wenn der User nein sagt/clickt, steht in onclick: return false und nichts passiert weiter. Dann brauchst du dich auch um nichts zu kümmern.
Ich hoffe, dass ich nicht zu verwirrt formuliert habe 😁
**:::
Original von morcheba
Wenn ich mit Javascript eine Messagebox öffne habe ich ja einen Rückgabewert. Nun, wie kann ich diesen mit C# ansprechen? Ich muss ja jenachdem, was der User ausgewählt hat, eine andere aktion ausführen...
Mach Dir mal den Unterscheid zwischen clientsetigen und serverseitigen Code klar. Dann kannst Du Dir die Lösung bzw. Vorgehensweise selbst erklären.
@vbprogger:
ich bin einigermassen nachgekommen. theoretisch verstehe ich es. aber praktisch anwenden kann ich es nicht.
So habe ich mein Button erstellt:
<asp:Button id="btnDelete" runat="server" CssClass="button" Width="157px" Text="Problem löschen"></asp:Button></TD>
Und nun?
dann im Codebehind, z.B. in Page_Load folgende Zeile eingeben:
protected void Page_Load(object sender, EventArgs e)
{
this.Button.Attributes.Add("onclick", "return confirm('ok');");
if (IsPostBack)
Response.Write("OK confirmed<br />");
else
Response.Write("newload<br />");
}
dann kannst du testen:
**:::
Habe folgendes versucht:
btnDelete.Attributes.Add("onClick", "return confirm('Soll das Problem wirklich gelöscht werden?');");
if (IsPostBack)
{
lblError.Visible=true;
lblError.Text = "OK confirmed";
}
else
{
lblError.Visible = true;
lblError.Text = "newload";
}
Es funktioniert aber nicht. Ich bekomme zwar die messagebox aber diese reagiert nicht..
Funktioniert bei mir. Hast du im Browser evtl. JavaScript deaktiviert?
Grüße,
Andre
Versuchs mal so:
btnDelete.Attributes.Add("onClick",
"javascript:if(confirm('Soll das Problem wirklich gelöscht werden?')== false) return false;");
Falls mich jemand über das "== false ) return false;" aufklären will, Ich weis das der Code in c# das gleich machen würde. Ich hab aber die erfahrung gemacht das javascript nicht c# ist.
nein habe ich nicht...denn wenn ich den code von if weg lösche bekomme ich die messagebox...
Kann es daran liegen, dass ich im Page_Load noch etwas anderes mache? Ich mache dort eine Abrage
if((!Page.IsPostBack) && (Session["LoggedIn"] != null))
{
}
poste doch mal den kompletten Code von Page_Load, bevor wir anfangen rumzuraten 😁
**:::
Ein kleiner Hinweis. Ich mache zuerst noch andere Dinge und erst wenn jemand auf den Button Delete klickt soll die Messagebox kommen...
private void Page_Load(object sender, System.EventArgs e)
{
btnDelete.Attributes.Add("onClick", "return confirm('OK?');");
if (IsPostBack)
{
lblError.Visible=true;
lblError.Text = "OK confirmed";
}
else
{
lblError.Visible = true;
lblError.Text = "newload";
}
Berechtigung();
#region Typ füllen
if((!Page.IsPostBack) && (Session["LoggedIn"] != null))
{
try
{
//Klasse aufrufen um das DropDownMenü Problemtyp zu füllen
FAQ.GetData getData = new FAQ.GetData();
ddltyp.DataSource = getData.Gettyp();
ddltyp.DataTextField = "typ";
ddltyp.DataValueField = "id";
ddltyp.DataBind();
//Leeren Eintrag hinzufügen, damit keine Fehleinträge gemacht werden
ddltyp.Items.Insert(0,new ListItem("","0"));
}
catch(Exception ex)
{
//Falls ein Fehler auftritt, Error anzeigen
lblError.Visible = true;
lblError.Text = ex.Message;
}
}
#endregion
hm ... sieht normal aus, bekommst du irgendwelche Fehlermeldung?
**:::
nein. ich komme jedoch immer in das isPostBack rein. Egal was ich anklicke, auch wenn ich nichts anklicke. Denn das IsPostBack hängt ja nicht nur von der MessageBox ab. Es kann ja auch beim normalen IsPostBack, dass dort durchgegangen wird...
ah ... jetzt ist mir klar, was du haben willst. OK wenn du die Seite sendest, ist IsPostback immer true. Buttons, CheckBox und RadioButton haben die Eigenschaft, dass der Wert nur gesendet wird, wenn darauf geklickt bzw. aktiviert ist. Also musst du zusätzlich prüfen, ob der Button geklick wurde und zwar hiermit:
if (IsPostback && Request.Form.Get("ButtonName")!=null)
{
// Button wurde geclickt
}
else
{
// Seite wurde zum 1. Mal geladen
}
**:::