2017-06-07 3 views
1

Auf Schaltfläche Klick Ereignis nach dem Einfügen von Daten möchte ich zeigen, dass die Daten erfolgreich eingefügt werden. Hier ist mein Coderesponse.write funktioniert nicht asp.net

if (com2.ExecuteNonQuery() >= 1) 
     { 
      Response.Write("<script LANGUAGE='JavaScript' >alert('Request Submitted Successfully!')</script>"); 
     } 
     else 
     { 
      Response.Write("<script LANGUAGE='JavaScript' >alert('There is some error. Please enter again')</script>"); 
     } 

Es funktioniert gut, bis ich Code für leere textboxs nach dem Einsetzen in demselben Ereignisse setzte bald nach oben Code. hier Code ist

foreach (var control in this.Controls) 
     { 
      TextBox tb = control as TextBox; 
      if (tb != null) 
      { 
       tb.Text = string.Empty; 
      } 
     } 
     Response.Redirect("Default.aspx"); 

Textbox jetzt leer nach Einfügen von Daten, Daten auch einfügt, aber keine Popup-Meldung angezeigt wird. Wo ist das Problem

+0

So funktioniert es nicht nach Sie setzen die Umleitung ein? – DavidG

+0

Nehmen Sie die Umleitung heraus und sehen Sie, ob die Alarmbox angezeigt wird. –

+0

@JackMarchetti wenn ich herausnehmen, zeigt es sich –

Antwort

2

Ich bin nicht 100% sicher auf Ihrer Logik, sondern stattdessen den Server durchführen von mit der Umleitung, tue es auf der Client-Seite nach dem Aufruf von alert:

if (com2.ExecuteNonQuery() >= 1) { 
    Response.Write("<script LANGUAGE='JavaScript' >alert('Request Submitted Successfully!');window.location='Default.aspx';</script>"); 
} else { 
    Response.Write("<script LANGUAGE='JavaScript' >alert('There is some error. Please enter again');window.location='Default.aspx';</script>"); 
} 
+0

danke. es funktioniert –

1

Ihr Response.Redirect("Default.aspx") wird auf Serverebene ausgeführt, so dass Sie der Clientseite nie die Möglichkeit geben, das JavaScript zu rendern, und daher werden Sie nie sehen, was Response.Write ausgibt.

Warum haben Sie kein <asp:Label> Steuerelement, das die gesuchte Nachricht anzeigen wird.

Also, statt einer Javascript-Nachricht können Sie tun:

tb.Text = String.Empty; //clear the textbox 
label.Text = "Success Message."; //show the message 

Es ist schon eine Weile, da ich gebrauchte WebForms haben, aber dies sollte funktionieren, wenn Sie Viewstate aktiviert. Vielleicht möchten Sie auch in UpdatePanels nachsehen.

+0

dann zeigen, was ich tun soll. Ich möchte auch Textfelder leeren und auch Nachricht zeigen –

+0

@RamiFar aktualisiert meine Antwort –

+0

Ich habe keine andere Möglichkeit, Textfelder zu leeren und Popup-Nachricht anzeigen ?? Ich möchte kein Label verwenden. –

Verwandte Themen