2009-03-11 4 views
1

Ich habe ein Formular default.aspx mit einem Scriptmanager und Webpart-Manager.Asp.NET Webpart> Userctrl> ClientScript.RegisterStartupScript funktioniert nicht?

Ich habe 4 Webpart-Zonen. Eine der Zonen verfügt über eine grundlegende Benutzerkontrolle für ihren Inhalt. Die Benutzersteuerung verfügt über eine Taste innerhalb eines Update-Panel und ich habe folgende auf dem Click-Ereignisse für die Schaltfläche:

Protected Sub cmdMarkComplete_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmdMarkComplete.Click 
     Me.Page.ClientScript.RegisterStartupScript(Me.Page.GetType, "mymsg", "<script>alert('hello');</script>", True) 
     UpdatePanel1.Update() 
End Sub 

Es passiert nichts, ich nicht einmal einen JavaScript-Fehler erhalten, aber die aync tut Zyklus, wie ich Änderungen kann Label Wert (als Test) usw. Wenn ich das Quellmarkup nach dem Klick überprüfe, ist 'Hallo' nicht einmal da, so als würde es das Skript nicht registrieren. Es muss mit der Tatsache, dass ich eine Benutzer-Ctrl in einem Webpart habe todo sein. Kann jemand helfen?

Vielen Dank im Voraus.

Antwort

1

Try ScriptManager.RegisterStartupScript verwenden, sollten diese eine bessere Unterstützung bieten, besonders für Skripte in einem Update-Panel hinzugefügt

http://msdn.microsoft.com/en-us/library/system.web.ui.scriptmanager.registerstartupscript.aspx

+0

Danke für die Kommentare. Ich benutzte Scrptmanager Priar, aber bemerkte, dass es von ClientScript.Reg übertroffen wurde. Wie auch immer, ich konnte es nicht zur Arbeit bringen, also ging ich zurück zum alten ScriptManager.Reg. – JamesM

+0

Hmmm, bist du sicher? Die veralteten Methoden, die ich kenne, sind auf dem Page-Objekt implementiert, soweit ich weiß, dass die ScriptManager-Klasse (deren Register eine statische Methode ist) aktuell ist. In der MSDN-Dokumentation wird nicht erwähnt, dass sie veraltet ist (wie bei den Seitenmethoden). – Chris

+0

Es war als ich ScriptMan benutzt habe. in IDE unterstrichen es wie es tut und sagte ClientScript verwenden. Also habe ich das zu der Zeit versucht, aber ich stimme dir zu, das tut/schien ein bisschen seltsam. Auch von dem, was ich gelesen habe, kann man den ScriptMan nur während teilweiser Postbacks benutzen, um Sachen zu registrieren. Alles Spaß/Spiele Hey! – JamesM

Verwandte Themen