ChildControl an bestimmter Textposition einfügen

30/01/2009 - 08:41 von Gerrit Horeis | Report spam
Hallo an Alle!

Ich möchte im CodeBehind in einem bestimmten Event (welches nehme ich
dafür?) folgende Control Hirachie realisieren.

<div id="div1">Hallo, dies ist ein div und das enthàlt <div
id="div2">noch ein div</div></div>

Es geht also darum Controls in Controls zu erstellen, aber ohne dass
beim Hinzufügen von ChildControls der Text in dem übergeordneten
Control gelöscht wird. Dazu sollte es auch möglich sein, die
Textposition anzugeben, an der die ChildControls eingefügt werden
sollen also z.B.

<div>dieser text ist <span style="color:red">rot</span></div>

oder

<div>Dies ist <span style="color:red">roter</span> text.</div>



Gibt es sowas in ASP.Net oder muss ich das selber bauen. Ich glaube
von Haus aus wird der Text in dem übergeordneten Control gelöscht,
wenn ich ChildControls über ChildControls.Add() hinzufüge. Und eine
Textposition kann ich da auch nicht angeben.

Weiß hier vielleicht jemand Rat?

Danke schon mal,

Gerrit
 

Lesen sie die antworten

#1 Stefan Falz [MVP]
30/01/2009 - 09:33 | Warnen spam
Hallo Gerrit,

"Gerrit Horeis" schrieb:

Ich möchte im CodeBehind in einem bestimmten Event (welches nehme ich
dafür?)



woher sollen wir das wissen? Du musst ja wissen, wann Du die Controls
brauchst. Wenn es nur um die Ausgabe geht, nicht auf Postback reagiert
werden muss und auch ansonsten keine besonderen Anforderungen bestehen,
kannst Du bspw. PreRender nehmen.

<div id="div1">Hallo, dies ist ein div und das enthàlt <div
id="div2">noch ein div</div></div>



Das ist aber keine Controlhierarchie sondern HTML Code.

Es geht also darum Controls in Controls zu erstellen, aber ohne dass
beim Hinzufügen von ChildControls der Text in dem übergeordneten
Control gelöscht wird.



Dazu bietet sich ein PlaceholderControl an. Ob das bei Dir funktioniert
hàngt aber bspw. davon ab, wo dein Text herkommt, ob der selbst in einem
Control steht, ...

Dazu sollte es auch möglich sein, die
Textposition anzugeben, an der die ChildControls eingefügt werden
sollen also z.B.



<asp:Panel ID="Abc" ...>
dieser text ist <asp:PlaceHolder ID="Def" ... />
</asp:Panel>

Def.Controls.Add( <Control> )

Und eine Textposition kann ich da auch nicht angeben.



Das widerspricht eigentlich auch dem Sinn und Zweck von ASP.NET.
Schau Dir aber dennoch mal den Beitrag hier an:

http://www.aspnetzone.de/forums/thread/206117.aspx

Da wird erklàrt, wie's trotzdem geht.

Tschau, Stefan
Microsoft MVP - Visual Developer ASP/ASP.NET
http://www.asp-solutions.de/ - Consulting, Development
http://www.aspnetzone.de/ - ASP.NET Zone, die ASP.NET Community

Ähnliche fragen