Zum Inhalt springen

ASP.Net: LoadOnDemand für bestimmte Teile der Seite


Guybrush Threepwood

Empfohlene Beiträge

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...

Link zu diesem Kommentar
Auf anderen Seiten teilen

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 :rolleyes:

[PHP]
function RenderControlFinished(value)
{
var p = document.getElementById('MainUserControls');
p.innerHTML = value;
}

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...