Die Webadresse geht bei mir im Moment irgendwie nicht...!   :(

Ich habe hier einen anderen L�sungsansatz, f�r mich aber irgendwie
umst�ndlich, da Description f�r mich soetwas �hnliches wie der Border
oder die Hintergrundfarbe der Tabelle ist. Ich habe in meinem Control
eine Property "SubTable", und die kann ich mit einer Tabelle f�llen, des
weiteren Description... 

        public class TestTable : WebControl
        {
                public string Description;
                public Table SubTable;

                protected override void Render( HtmlTextWriter writer) 
                {
                        Table t = new Table();
                        TableRow r = new TableRow();
                        TableCell c = new TableCell();

                        c.Controls.Add(SubTable);
                        r.Cells.Add(c);
                        t.Rows.Add(r);

                        c = new TableCell();
                        r = new TableRow();
                        c.Style.Add("FONT-FAMILY", "Tahoma");
                        c.Style.Add("FONT-SIZE", "10px");
                        c.HorizontalAlign = HorizontalAlign.Center;
                        c.Text = this.Description;
                        r.Cells.Add(c);
                        t.Rows.Add(r);

                        t.RenderControl(writer);
                }
        }


Und das Control benutze ich dann wie folgt in meiner WebForm:

        public class WebForm1 : System.Web.UI.Page
        {
                protected System.Web.UI.WebControls.Label Label1;
        
                private void Page_Load(object sender, System.EventArgs
e)
                {
                        TestTable x = new TestTable();
                        Table t = new Table();
                        TableRow r = new TableRow();
                        TableCell c = new TableCell();
                        c.Text = "Vorname";
                        r.Cells.Add(c);

                        c = new TableCell();
                        c.Text = "Nachname";
                        r.Cells.Add(c);

                        c = new TableCell();
                        c.Text = "Stra�e";
                        r.Cells.Add(c);

                        c = new TableCell();
                        c.Text = "Ort";
                        r.Cells.Add(c);

                        t.Rows.Add(r);

                        x.Description = "Das ist meine Beschreibung";
                        x.SubTable = t;

                        Label1.Controls.Add(x);
                }
        }


CIAO
Michael



> -----Urspr�ngliche Nachricht-----
> Von: [EMAIL PROTECTED] 
> [mailto:[EMAIL PROTECTED] Im Auftrag von Andre Seifert
> Gesendet: Montag, 24. Februar 2003 12:21
> An: [EMAIL PROTECTED]
> Betreff: [Asp.net] AW: [Asp.net] AW: [Asp.net] AW: [Asp.net] 
> AW: [Asp.net] AW: [Asp.net] AW: [Asp.net] AW: [Asp.net] AW: 
> [Asp.net] Von Table ableiten L�SUNG
> 
> 
> Obwohl ich glaube, dass das eher ein Panel mit �berschrift ist.
> 
> Unter http://www.asp-buch.de/downloads/controls/ findest Du 
> etwas �hnliches. "DropDownPanel" vom Autor des Buches. Man 
> m�sste eben eine DataList oder einen Repeater da rein 
> bekommen, habe ich aber auch noch nicht ausprobiert...
> 
> andre.seifert
> @xmmm.de
> 
> 
> >-----Urspr�ngliche Nachricht-----
> >Von: [EMAIL PROTECTED]
> >[mailto:[EMAIL PROTECTED] Im Auftrag von Michael Schwarz
> >Gesendet: Montag, 24. Februar 2003 12:08
> >An: [EMAIL PROTECTED]
> >Betreff: [Asp.net] AW: [Asp.net] AW: [Asp.net] AW: [Asp.net] 
> >AW: [Asp.net] AW: [Asp.net] AW: [Asp.net] AW: [Asp.net] Von 
> >Table ableiten L�SUNG
> >
> >
> >> 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.
> >
> >Stimmt, das k�nnte vielleicht das Problem sein, aber wie mache
> >ich weiter?
> >
> >> Benutze doch das Control einfach 2 mal.
> >
> >Das ist ja gerade der Witz gewesen, dass ich eben nur ein
> >Objekt erzeuge, und damit arbeite. Klar, ich kann auch einfach 
> >zwei Table Objekte nehmen, daf�r brauche ich dann keinerlei 
> >zus�tzliche Klassen.
> >
> >Ich m�chte ein Server Control basteln, welches wie die beiden
> >rechten Controls auf 
> >http://microsoft.com/WindowsServer2003/evaluation/performance/t
> >pcc2.mspx
> >aussehen, und jeden beliebigen Content enthalten k�nnen, in 
> >meinem Fall sollen es immer Tabellen sein, bei dem die 
> >abgeleitete Klasse eine zus�tzliche Eigenschaft "Titel" besitzt.
> >
> >CIAO
> >Michael
> >
> >
> >
> >> 
> >> 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
> >> 
> >
> >_______________________________________________
> >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

Antwort per Email an