Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
Basiseigenschaften in neues Objekt kopieren
naumann
myCSharp.de - Member



Dabei seit:
Beiträge: 61

Themenstarter:

Basiseigenschaften in neues Objekt kopieren

beantworten | zitieren | melden

Hallo,

ich bin grad dabei ein mir eine WebControl zu schreiben. Dabei benutze ich eine Table zur Darstellung. Ich zeig euch mal wie das Objekt aussieht.


public class Menu : WebControls {

public MenuItemCollection Items
{
get {return (MenuItemCollection) ViewState["Items"];}
set {ViewState["Items"] = value;}
}

}

public class MenuItem: WebControl, IPostBackDataHandler {

public MenuItem ParentItem
{
get {return (MenuItem) ViewState["ParentItem"];}
set {ViewState["ParentItem"] = value;}
}

public string Text
{
get {return (string) ViewState["Text"];}
set {ViewState["Text"] = value;}
}


}

Meine Menü Unterelemente werden aus den Items der MenuItemCollection erstellt (Sammlung von MenuItem). Da MenuItem von WebControl erbt hat er auch alle Eigenschaften wie CssClass und die ganzen Styles. Wie kann ich den Anteil von WebControl aus MenuItem in die TableCell kopieren?

Ich will nähmlich nicht alle Eigenschaftswerte von MenuItem nach TableCell zuweisen, das ist ziemlich viel schreibarbeit .

Gibt es da eine Möglichkeit?
private Nachricht | Beiträge des Benutzers
Cord Worthmann
myCSharp.de - Member



Dabei seit:
Beiträge: 1205

beantworten | zitieren | melden

Du musst die Render-Methoden in der richtigen Reihenfolge aufrufen...


TableCell.RenderBeginTag
MenuItem.RenderControl
TableCell.RenderEndTag


Übrigens...
Du solltest niemals so komplexe Objekte im ViewState ablegen, das ist absolut inflationär.
Schau Dir mal den genrierten Output an - durch das Abspeichern gesamter Objekte sollte er bereits bei wenigen MenuItems gewaltig sein.
Es reicht absolut, wenn Du den Items eine ID gibst oder einen Index und lediglich diese Werte im ViewState überträgst.
Dann überschreibst Du die Methoden LoadViewState und SaveViewState, und bastels Dir aus den übertragenen Parametern in der ersten Methode Dein Objekt wieder zusammen.


Grüsse
private Nachricht | Beiträge des Benutzers