RegisterClientScriptCode funktioniert nicht nach einem Teil-Beitrag zurück
Die folgenden Zeilen von code in einem benutzerdefinierten Steuerelement in einer SharePoint-website.
ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "jquery144", "<script type=\"text/javascript\" src=\"/_layouts/Unicre.Web.RUOnline.Controlos/Scripts/jquery-1.4.4.min.js\"></script>", false);
ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "javascriptgeral", "<script type=\"text/javascript\" src=\"/_layouts/Unicre.Web.RUOnline.Controlos/Scripts/javascript.js\"></script>", false);
Warum geht es nicht? Ich kann auch nicht finden, die entsprechende script-tags im HTML-generiert in der Antwort.
Dem problem zu tun hat, mit einer update-panel. Nach der partielle postback, das Javascript nicht mehr funktioniert. Sollte es nicht funktioniert mit dem obigen code?
(Ich habe auch versucht, die RegisterClientScriptInclude-Methode, aber mit dem gleichen Ergebnis.)
- Hey, unabhängig von dem, was das problem ist, Sie haben einen Tippfehler, hier: <script type=\"text/javascript\"
- OK, das ist peinlich! Ich habe es bei der Suche für ganz irgendwann, und ich kann nicht finden die Tippfehler. Wo ist es?
- Sorry mein Fehler, ist alles in Ordnung. Nur vermischt, bis ein slash mit einem backslash. Sorry nochmal 🙂
- Kein problem!....
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dies ist nicht zur Arbeit gehen auf einen partiellen postback. Sie müssen sich die Skripte auf
Page_Load
. In der Benutzer-Steuerelement, befestigen Sie die zum Load-Ereignis und rufen Sie ScriptManager.RegisterClientScriptBlock() von hf.Einem UpdatePanel-partielle postback-DOM-update des UpdatePanel -
<div>
Inhalt. Dies bedeutet, dass die bisherigen Inhalte verloren gehen, so dass der Zustand der inline-Skript enthaltenen, dass<div>
verliert seinen Zustand.Sehen hier weitere Informationen:
Ebenfalls, Aufruf ScriptManager.RegisterClientScriptBlock() auf einem UpdatePanel-update ist nicht zu handeln, wie eine Seite zu laden. Man könnte hinzufügen, die
<script>
Elemente direkt in das UpdatePanel-Inhalt, aber es wird nicht ausgeführt.Update
Können Sie aufrufen, javascript-code nach einer partiellen postback durch hinzufügen eines endRequest-handler, um die PageRequestManager:
ScriptManager.RegisterClientScriptBlock()
auf dem ersten server-SeitePage_Load
(denken Sie daran, dies muss getan werden, jedes mal, also nicht prüfen!IsPostBack
). Dann, wenn es bestimmte Funktionen, die Sie ausführen möchten nur nach dem UpdatePanel aktualisieren, verwenden Sie dieadd_endRequest()
dargestellte Ansatz in meine aktualisierte Antwort oben.