2012-03-28 3 views
3

Ich habe ein Steuerelement, wenn eine Überprüfung bereits existiert, wenn es existiert Ich möchte den Besucher warnen, wenn die Person auf OK/Ja in der Warnung klicken, wird die Überprüfung überschrieben, wenn die Person Nein drücken/die Überprüfung abbrechen wird nicht sein aktualisiert. Aber es funktioniert nicht, im Debugging passiert die Alarmzeile nur und wird ohne Alarm aktualisiert.Warum wird die Warnung nicht ausgeführt?

if (ReviewExist(StoreID, UserID) != 0) 
{ 
    ScriptManager.RegisterStartupScript(this, this.GetType(), "Message", "confirm('Are you sure?');", true); 
    UpdateStoreReview(Description); 
    Response.Redirect("Default"); 
} 
else  
{ 
    AddStoreReview(Description); 
} 
+2

Das Beispiel aus [der Dokumentation] (http://msdn.microsoft.com/en-us/library/z9h4dk8y.aspx) wickelt die js in 'mit 'Tags. Hast du das probiert? –

+1

Auch wenn die Dinge wie erwartet funktionierten (dh das Client-Skript wurde ausgeführt, bevor Sie zur nächsten Zeile übergehen), beachten Sie, dass Sie das Ergebnis Ihres 'confirm()' -Aufrufs nicht überprüfen können oder können. –

Antwort

8

Es ist, weil Ihre Response.Redirect die Steuerung auf eine andere Seite umgeleitet, die Ihre RegisterScript ignorieren.

Was Sie tun müssen, ist, wenn Sie versuchen, diese in die Schaltfläche klicken (Update Taste), um acheive, dann in der Page_Load versuchen

if(!IsPostBack)  
{ 
btnUpdate.Attributes.Add("OnClick","confirm('Are you sure?');"); 
} 

Dann wird der obige Code kann auf

geändert werden
if (ReviewExist(StoreID, UserID) != 0) 
{ 
    UpdateStoreReview(Description); 
    Response.Redirect("Default"); 
} 
else  
{ 
    AddStoreReview(Description); 
} 

Hinweis Ich denke, dass Sie auf Default.aspx umleiten müssen; aber Sie vermissen. aspx in der response.redirect.

+0

Okey, aber ich möchte nur, dass der Benutzer die Warnung sieht, wenn der Benutzer bereits eine Rezension veröffentlicht hat. Es sieht so aus, als ob bei jedem Drücken der Taste der Alarm erscheint oder liege ich falsch? – user1007103

+0

Das können Sie eine If-Anweisung vor dem Hinzufügen von btnUpdate.Attributes.Add hinzufügen, die überprüft, ob der Benutzer bereits eine Rezension hinzugefügt hat – PraveenVenu

+0

Das ist wahr! Vielen Dank! – user1007103

2

Sie benötigen die Skript-Tags in Ihrem Skript.

ScriptManager.RegisterStartupScript(this, this.GetType(), "Message", "<script type='text/javascript'>confirm('Are you sure?');</script>", true); 
1

Wenn Sie die ASP.net

<asp:Button ID="_btnSalvar" runat="server" Confirm="False" ConfirmType="None" Text="Are you sure?" Width="131px" OnClick="_btnSalvar_Click" />