Entfernen von Skripts Hinzugefügt von ClientScript.RegisterStartupScript
In meiner Anwendung die login-Steuerung, ich zeige ein Dialogfenster, wenn der login fehlgeschlagen ist. In dieser Art und Weise:
protected void EMSLogin_Authenticate(object sender, AuthenticateEventArgs e) {
log.Info("=============INSIDE EMSLogin_Authenticate======");
RadTextBox UserName = EMSLogin.FindControl("UserName") as RadTextBox;
RadTextBox Password = EMSLogin.FindControl("Password") as RadTextBox;
if (Membership.ValidateUser(UserName.Text, Password.Text)) {
FormsAuthentication.RedirectFromLoginPage(UserName.Text, false);
} else {
ClientScript.RegisterStartupScript(typeof(ScriptManager), "CallShowDialog", "showDialog();", true);
}
}
JavaScript ist:
function showDialog() {
$(document).ready(function () {
$(".jym").dialog("open");
});
}
Nun, wenn der login fehlgeschlagen ist der dialog zeigt. Aber Das problem ist wenn ich aktualisieren Sie das Browserfenster, nachdem ein login fehlgeschlagen ist, wird der dialog wieder geöffnet, da die $(".jym").dialog("open")
ist geschrieben in der Seite. Dann habe ich versucht
protected void Page_Unload(object sender, EventArgs e) {
log.Info("=============INSIDE Page_Unload======");
ClientScript.RegisterStartupScript(typeof(ScriptManager), "CallShowDialog", "", true);
}
Aber kein Glück.
Gibt es eine Möglichkeit, dieses problem zu lösen?
Wenn ich ClientScript.RegisterClientScriptBlock()
dies nicht funktioniert, ich meine, dass der dialog nicht öffnen, auf Fehler.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Versuchen Sie den Aufruf der Funktion:
...in der Page_Load-Ereignishandler.
Page_Load tritt auf, bevor die Schaltfläche click-Ereignis-handler. Sie können dies überprüfen, indem Sie den folgenden code und suchen in der debug - /Ausgabe-Fenster:
So löschen Sie das Skript in der Page_Load-Ereignishandler sollte, löschen Sie alle vorherigen Skript, das geladen wurde.