2012-03-29 7 views
0

Ich habe einen Repeater und in ItemCommand code, muss ich eine Datenbank überprüfen, ob einige Datensätze gelöscht und wenn ja, fragen, ob der Benutzer fortfahren möchte. So etwas wie diesesBefestigen Sie den Javascript-Bestätigungsdialog an einen LinkButton/form in Repeater ItemCommand

If e.CommandName="Clone" Then 
      'Do the database check to see if records deleted and if yes 
      'show a confirmation dialog and if user answers "yes" continue, if "no" stop 
    End If 

Der Befehl "Clone" kommt von einem LinkButton. Außerdem möchte ich dies in ItemCommand anstelle von ItemCreated oder DataBound tun, weil ich nicht möchte, dass die Überprüfung für jeden Datensatz hinzugefügt wird. Es wird nur ausgeführt, wenn ich auf die Link-Schaltfläche klicke

Ist das möglich? Vielen Dank.

Antwort

0

Sie könnten dies auf verschiedene Arten tun.

Ein Weg wäre, statt einen vollen Beitrag zurück zu machen, wenn die Link-Taste geklickt wird, einen Ajax-Aufruf an den Server zu sehen, ob der Datensatz gelöscht wird. Dann können Sie das Javascript-Bestätigungsdialogfeld anzeigen, nachdem die Ajax-Anfrage abgeschlossen ist. Wenn der Benutzer mit "Ja" antwortet, können Sie eine weitere Ajax-Anfrage stellen oder einen vollständigen Postback über __doPostBack an einen Clone-Event-Handler mit den entsprechenden Argumenten auslösen.

Hier ist eine einfache Möglichkeit, einen Ajax-Aufruf zu machen: Calling a webmethod with jquery in asp.net webforms

Eine alternative Methode wäre den anfänglichen vollständigen Beitrag zurück an den Server zu tun, tun, um die Datenbank zu überprüfen, und dann einige Javascript an den Client zurück, das würde dazu führen, dass die Bestätigungsmeldung angezeigt wird. Dann würden Sie das Ergebnis der Bestätigung über Javascript behandeln und einen Ajax/vollständigen Post zurückgeben, um den Klon durchzuführen.

gl

+0

Ich habe die zweite Methode versucht, konnte aber nicht den Dialog erscheinen. Ich habe so etwas versucht Dim t Als Typ = Me. [GetType]() Dim confirmMsg = "zurück bestätigen ('Sind Sie sicher, dass Sie fortfahren möchten?');" ScriptManager.RegisterStartupScript (Me.Page, t, "ConfirmScript", confirmMsg, True) Es funktioniert, wenn es eine Warnung aber keine Bestätigung ist –