Du begibts Dich, meiner Ansicht nach, mit dieser Zeile in eine Endlosschleife.
c.Controls.Add(this); ruft ja wieder Render auf, das wiederum c.Controls.Add(this); ausf�hrt usw. usw. Benutze doch das Control einfach 2 mal. Das erste mal f�r die "Layout-Tabelle" mit �berschrift TABELLE1 (TestTable tb1 = new TestTable(); TableRow r = ...) ************************************ **********�BERSCHRIFT*************** ************************************ ***TABELLE2 (TestTable tb2=...****** *** ****** *** ****** ************************************ andre.seifert @xmmm.de >-----Urspr�ngliche Nachricht----- >Von: [EMAIL PROTECTED] >[mailto:[EMAIL PROTECTED] Im Auftrag von Michael Schwarz >Gesendet: Montag, 24. Februar 2003 11:40 >An: [EMAIL PROTECTED] >Betreff: [Asp.net] AW: [Asp.net] AW: [Asp.net] AW: [Asp.net] >AW: [Asp.net] AW: [Asp.net] Von Table ableiten L�SUNG > > >Das klappt, kein Problem. Was ist aber, wenn Du jetzt >folgendes bauen m�chtest, vielleicht ist ein Panel zu einfach... > >Ich m�chte gerne in einer WebForm ein Control haben, mit dem >ich genauso wie mit einer Tabelle arbeiten kann, mein Control >muss also von Table abgeleitet sein. Nun kann ich Zeilen und >Spalten hinzuf�gen, und meine Tabelle aufbauen. Wenn mein >Control nun angezeigt werden soll, dann m�chte ich diese >Tabelle, die ich aufgebaut habe, in eine �bergeordnete Tabelle >einbauen, in meinem Beispiel in die zweite Zeile. In der >ersten Zeile taucht meinetwegen ein Titel o.�. auf. > >******************** >* �berschrift * >******************** >* * >* eigentliche * >* Tabelle * >* * >******************** > > > >public class TestTable : Table >{ > private string m_header; > public string Header > { > get { return m_header; } > set { m_header = value; } > } > > protected override void Render( HtmlTextWriter writer ) > { > Table main = new Table(); > TableRow r = new TableRow(); > TableCell c = new TableCell; > c.Text = m_header; > r.Cells.Add(c); > main.Rows.Add(r); > > r = new TableRow(); > c = new TableCell(); > c.Controls.Add(this); // hier tritt dann wohl >der Fehler auf > r.Cells.Add(c); > main.Rows.Add(r); > > main.RenderControl(writer); > } >} > > > > >CIAO >Michael > > > > > >> -----Urspr�ngliche Nachricht----- >> Von: [EMAIL PROTECTED] >> [mailto:[EMAIL PROTECTED] Im Auftrag von Andre Seifert >> Gesendet: Montag, 24. Februar 2003 11:26 >> An: [EMAIL PROTECTED] >> Betreff: [Asp.net] AW: [Asp.net] AW: [Asp.net] AW: [Asp.net] >> AW: [Asp.net] Von Table ableiten L�SUNG >> >> >> Okay, habe es mal nachgebaut. >> Ich weiss allerdings nicht, was genau Dein Problem ist. >> Du kannst doch aus der �berschriebenen Methode Render >> aufrufen, was Du willst/brauchst >> >> public class TestPanel : Panel >> { >> // Die Datenquelle >> protected override void Render( HtmlTextWriter writer) >> { >> Label lb = new Label(); >> lb.Text = "Mein Text"; >> base.RenderBeginTag(writer); >> lb.RenderControl(writer); >> base.RenderContents(writer); >> base.RenderEndTag(writer); >> } >> } >> >> andre.seifert >> @xmmm.de >> >> >> >-----Urspr�ngliche Nachricht----- >> >Von: [EMAIL PROTECTED] >[mailto:[EMAIL PROTECTED] >> >Im Auftrag von Michael Schwarz >> >Gesendet: Montag, 24. Februar 2003 10:59 >> >An: [EMAIL PROTECTED] >> >Betreff: [Asp.net] AW: [Asp.net] AW: [Asp.net] AW: [Asp.net] >> >Von Table ableiten L�SUNG >> > >> > >> >Hi Andre, >> > >> >klar, ein einfaches UserControl zu schreiben, welches >> >objektorientiert HTML zusammenbaut funktioniert so weit bei >mir auch. >> >Das Problem ist nur, wenn ich von "Table" ableite, oder von einem >> >anderen Control, und dieses Control Teil der Ausgabe sein soll. >> > >> >Ist Dein Control abgeleitet von einem anderen Control, also z.B. >> >Panel, Table,...? >> > >> >CIAO >> >Michael >> > >> > >> >> -----Urspr�ngliche Nachricht----- >> >> Von: [EMAIL PROTECTED] >> [mailto:[EMAIL PROTECTED] >> >> Im Auftrag von Andre Seifert >> >> Gesendet: Montag, 24. Februar 2003 10:50 >> >> An: [EMAIL PROTECTED] >> >> Betreff: [Asp.net] AW: [Asp.net] AW: [Asp.net] Von Table ableiten >> >> L�SUNG >> >> >> >> >> >> > container.Controls.Add(this); >> >> >> >> Was soll denn diese Zeile tun? >> >> Du befindest Dich im Objekt TestTable, und willst aus >> dieser Tabelle >> >> ein Control rendern, dass diese Tabelle beinhaltet... >> >> >> >> Also ich habe die Methode Render schon erfolgreich mit einem >> >> UserControl auch objektorientiert eingesetzt. Mein Control >> >> (vergleichbar mit Panel) hat Bilder und Labels in sich >aufgenommen >> >> und dargestellt. >> >> >> >> Label lb = new Label(); >> >> lb.Text = "Label"; >> >> >> >> lb.RenderControl(writer); >> >> >> >> >> >> andre.seifert >> >> @xmmm.de >> >> >> >> >> >> >-----Urspr�ngliche Nachricht----- >> >> >Von: [EMAIL PROTECTED] >> >[mailto:[EMAIL PROTECTED] >> >> >Im Auftrag von Michael Schwarz >> >> >Gesendet: Montag, 24. Februar 2003 10:41 >> >> >An: [EMAIL PROTECTED] >> >> >Betreff: [Asp.net] AW: [Asp.net] Von Table ableiten L�SUNG >> >> > >> >> > >> >> >Ich habe dazu noch eine Frage: Wie kann ich in der >Render Methode >> >> >auch objektorientiert arbeiten? Ich stelle mir folgendes vor: >> >> > >> >> >protected override void Render(HtmlTextWriter writer) >> >> >{ >> >> > Panel container = new Panel(); >> >> > container.Style.Add("BACKGROUND-COLOR", "black"); >> >> > container.Controls.Add(this); >> >> > >> >> > container.RenderControl(writer); >> >> >} >> >> > >> >> >Ich bekomme dann immer den Fehler "Exception of type >> >> >System.StackOverflowException was thrown". >> >> > >> >> >CIAO >> >> >Michael >> >> > >> >> > >> >> >> -----Urspr�ngliche Nachricht----- >> >> >> Von: [EMAIL PROTECTED] >> >> [mailto:[EMAIL PROTECTED] >> >> >> Im Auftrag von >> >> Andreas Rudischhauser (N) >> >> >> Gesendet: Samstag, 22. Februar 2003 18:50 >> >> >> An: [EMAIL PROTECTED] >> >> >> Betreff: [Asp.net] Von Table ableiten L�SUNG >> >> >> >> >> >> >> >> >> Folgender Code leitet vom TABLE - Tag ab und erstellt >> >> einen div tag >> >> >> drumrum. Falls es jemand brauchen kann >> >> >> >> >> >> using System; >> >> >> using System.Text; >> >> >> using System.Diagnostics; >> >> >> using System.Collections; >> >> >> using System.Collections.Specialized; >> >> >> using System.ComponentModel; >> >> >> using System.Data; >> >> >> using System.Data.OleDb; >> >> >> using System.Web; >> >> >> using System.Web.SessionState; >> >> >> using System.Web.UI; >> >> >> using System.Web.UI.WebControls; >> >> >> using System.Web.UI.HtmlControls; >> >> >> using System.Xml; >> >> >> >> >> >> namespace ASPNetPortal { >> >> >> public class TestTable : Table { >> >> >> // Die Datenquelle >> >> >> protected override void Render( HtmlTextWriter writer) { >> >> >> writer.Write("<div style=\"background-color:black\">"); >> >> >> // Ruft Oberklasse (Table) auf >> >> >> base.Render(writer); >> >> >> //Rendert den Inhalt >> >> >> RenderChildren(writer); >> >> >> >> >> >> writer.Write("</div>"); >> >> >> } >> >> >> } >> >> >> } >> >> >> >> >> >> _______________________________________________ >> >> >> Asp.net mailing list >> >> >> [EMAIL PROTECTED] >> >> >> http://www.glengamoi.com/mailman/listinfo/asp.net >> >> >> >> >> > >> >> >_______________________________________________ >> >> >Asp.net mailing list >> >> >[EMAIL PROTECTED] >> >> http://www.glengamoi.com/mailman/listinfo/asp.net >> >> > >> >> >> >> >> >> _______________________________________________ >> >> Asp.net mailing list >> >> [EMAIL PROTECTED] >> >> http://www.glengamoi.com/mailman/listinfo/asp.net >> >> >> > >> >_______________________________________________ >> >Asp.net mailing list >> >[EMAIL PROTECTED] >> http://www.glengamoi.com/mailman/listinfo/asp.net >> > >> >> >> _______________________________________________ >> Asp.net mailing list >> [EMAIL PROTECTED] >> http://www.glengamoi.com/mailman/listinfo/asp.net >> > >_______________________________________________ >Asp.net mailing list >[EMAIL PROTECTED] >http://www.glengamoi.com/mailman/listinfo/asp.net > _______________________________________________ Asp.net mailing list [EMAIL PROTECTED] http://www.glengamoi.com/mailman/listinfo/asp.net
