Laden...

Render Method ASP Server Control

Erstellt von elron vor 12 Jahren Letzter Beitrag vor 12 Jahren 2.097 Views
E
elron Themenstarter:in
171 Beiträge seit 2004
vor 12 Jahren
Render Method ASP Server Control

Hi in die Runde,

aps entscheidet ob die Render method ausgeführt wird oder nicht.
Weiß jemand ob es dafür ein property zum prüfen gibt ... oder wie man an die Information rankommt ob ein Control nun gerendert wird oder nicht also die Unterscheidung quasi.

Grüße

3.170 Beiträge seit 2006
vor 12 Jahren

Hallo,

das kannst Du mittels der Visible-Property feststellen.

Gruß, MarsStein

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca

E
elron Themenstarter:in
171 Beiträge seit 2004
vor 12 Jahren

Ja hätte ich auch gedacht aber in meinem Senario nicht, dass ist immer auf true ..
Es gibt gibt hier noch ne andere unterscheidung... kann auch ein internal prop sein .. mich interessiert nur welches es davon ist... evtl. noch einen ansatz ?

Vorab Danke

3.170 Beiträge seit 2006
vor 12 Jahren

Hallo,

allgemein auf Ebene des Controls ist es die Visible-Prperty. Die englische Doku zeigt das etwas ausführlicher als die deutsche:

If this property is false, the server control is not rendered. You should take this into account when organizing the layout of your page. If a container control is not rendered, any controls that it contains will not be rendered even if you set the Visible property of an individual control to true. In that case, the individual control returns false for the Visible property even if you have explicitly set it to true. (That is, if the Visible property of the parent control is set to false, the child control inherits that setting and the setting takes precedence over any local setting.)

Da RenderControl aber überschrieben werden kann, kann theoretisch jede einzelne abgeleitete Klasse noch eigene Kriterien haben, ob das Control gerendert wird oder nicht -> dann kann man es aber nicht allgemein auf Control beziehen.

Gruß, MarsStein

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca

E
elron Themenstarter:in
171 Beiträge seit 2004
vor 12 Jahren

Ich weiss was das Visible prob macht und Co.
Es geht darum zu prüfen ob das Control gerendert wird (werden soll) von asp oder nicht.

weisst was ich meine ?

3.170 Beiträge seit 2006
vor 12 Jahren

Hallo,

ja, ich denke ich habe schon verstanden was Du meinst. Und die Antwort habe ich bereits geschrieben 😉

Auf Ebene der Control-Klasse ist die von mir genannte Property zuständig. Es ist aber durchaus möglich, dass spezielle Ableitungen von Control da einen eigenen - aber nicht allgemeingültigen - Mechanismus implementieren, und anhand eigener Kriterien selbständig über das Rendern entscheiden.

Zusätzlich kann es sein, dass ein Control innerhalb eines anderen, nicht gerenderten Controls geschachtelt ist und deshalb ebenfalls nicht gerendert wird.

Btw, über was für ein Control reden wir denn hier eigentlich?

Gruß, MarsStein

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca

E
elron Themenstarter:in
171 Beiträge seit 2004
vor 12 Jahren

Es ist ein Wizard Control also nichts besonderes.. noch mal ..
irgendein mechanismus im .Net Feuert die Render Method.

Wenn ich ein Parent Control habe das z.b. oder genau in meinem Fall Visible auf false hat wird die Render Method nicht gestartet das gilt auch für alle Child Controls logischerweise. Jedes Control hat ja z.b. ein Enabled so wie auch ein IsEnabled Prop. Beim Visible ist es leider nicht so ..

z.b. Parent ist Enabled = false;
Child ist Enabled = true aber IsEnabled = false , hier wird ja recurisve nach unten übermittelt das IsEnabled auf false gestellt wird.

Leider gibt es dieses nicht für Visible... klasse wäre es z.b. ein prob. was über ein Control aussagt das es gerendert werden soll oder auch nicht bevor es gerendert wird. Und irgendwo wird diese unterscheidung getroffen.. ich will wissen wo und an welcher stelle ^^ ich such mir schon einen wolf im Reflector finde aber nichts ...

3.170 Beiträge seit 2006
vor 12 Jahren

Hallo,

das ist mit Enabled und IsEnabled nicht diekt zu vergleichen:

Ein WebControl kann - wie Du sagst - Enabled==true sein und trotzdem IsEnabled==false => das ist wichtig, weil der Server entscheiden muss, ob z.B. enthaltene Formularelemente clientseitig aktiv oder ausgegraut erscheinen, aber die Eigenschaft des Childcontrols nicht verbogen werden soll, wenn der Zustand "nur" geerbt ist.

Bei Visible ist eine solche Unterscheidung nich nötig, weil immer alle ChildControls eines ausgeblendeten Controls unsichtbar sind -> RenderChildControls wird einfach nicht aufgerufen.

Einen vergleichbaren Mechanismus wie bei Enabled/IsEnabled ist mir nicht bekannt.

Gruß, MarsStein

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca