Guybrush Threepwood Geschrieben 18. Juni 2007 Teilen Geschrieben 18. Juni 2007 Ich hab mir überlegt das es praktisch wäre bestimmte Teile meiner Seite die versteckt sind und nur in bestimmten Fällen angezeigt werden auch erst dann zu laden und nicht alles auf einaml beim öffnen der Seite. Als Beispiel hab ich das jetzt mit einem der Usercontrols auf der Seite versucht. Dieses will ich sobald es gebraucht wird mit einer WebMethod vom Server laden und per Javascript dem innerHTML eines Div Elements hinzufügen. Dazu hab ich folgenden Code: Control ctrl = LoadControl("MyControl.ascx"); StringBuilder HtmlCode = new StringBuilder(); StringWriter StringWriter = new StringWriter(HtmlCode); HtmlTextWriter writer = new HtmlTextWriter(StringWriter); ctrl.RenderControl(writer); [/PHP] Leider bekomme ich beim RenderControl Aufruf den Fehler das das erste Steuerelement im UserControl in einem Formtag mit dem Attribut runat=server plaziert werden muss. Weiß jemand wie ich das umgehen kann und den HTML Code für mein Steuerlement erhalte? Das Formtag existiert ja schon auf der Seite in die das Control reinsoll. Wenn ich das ganze übrigens mit einem normalen WebControl mache klappt es ohne Fehler und per google hab ich bisher nur Leute gefunden bei denen das entweder auch problemlos mit einem Usercontrol klappt oder welche die den selben Frhler bekommen, aber keine Lösung haben... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Guybrush Threepwood Geschrieben 18. Juni 2007 Autor Teilen Geschrieben 18. Juni 2007 Wie das immer ist hab ich kurz nach dem Posten doch noch was gefunden. Den Fehler kann man umgehen indem man seiner Seite folgende Funktion hinzufügt: public override void VerifyRenderingInServerForm(Control control) { } [/PHP] und im Page Tag EnableEventValidation="false" setzt. Ich bin mir aber noch nicht sicher ob ich das so lassen kann weil ich nicht weiß was es sonst noch bewirkt. Außerdem bekomme ich im Javascript jetzt beim zuweisen des Codes einen unbekannten Laufzeitfehler [PHP] function RenderControlFinished(value) { var p = document.getElementById('MainUserControls'); p.innerHTML = value; } Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.