Laden...

System.Web.UI.WebControls.Style ID setzen?

Erstellt von Lexodus vor 17 Jahren Letzter Beitrag vor 17 Jahren 2.486 Views
L
Lexodus Themenstarter:in
254 Beiträge seit 2005
vor 17 Jahren
System.Web.UI.WebControls.Style ID setzen?

Hallo miteinander

Wie im Titel schon steht, kreiere ich mir in meiner ASP.NET 2 Anwendung einen Style, denn ich später mittels


System.Web.UI.Page.Header.StyleSheet.RegisterStyle(myStyle,null)

in die Seite einbinden will. Bis jetzt wird die ID des Styles noch generiert, ich möchte die ID aber selbst setzen oder sollte das nicht gehen (was ziemlich komisch wäre) mir wenigstens die kreierte ID geben lassen.

Habt ihr ne Idee?

Gruss

Lex

If you can't make it, fake it.

W
799 Beiträge seit 2004
vor 17 Jahren

Was für nen Sinn sollte es überhaupt machen, das programatisch zu tun und nicht in einem Stylesheet?

L
Lexodus Themenstarter:in
254 Beiträge seit 2005
vor 17 Jahren

Ich muss in meinem Anwendungsfall stylesheets dynamisch kreieren und zuweisen. Jedoch nicht den Style als string im Elemnttag sondern eben nur die ID des Stylesheets den ich dynamisch kreiert habe.

If you can't make it, fake it.

L
Lexodus Themenstarter:in
254 Beiträge seit 2005
vor 17 Jahren

Ach ja.

Wenn ich nen Style objekt instanziere und später einem Objekt zuweise dass nen Style haben kann, so weist er wie schon vorher gesagt den Style als string in den Elemnttag zu. Das ist in meinem Fall unbrauchbar.

Ich möchte, dass nur die id des Styles dem objekt zugewiesen wird (Eigenschaft heisst object.CSSStyle) dort wird dann effektiv nur der namen des CSS-Styles angegeben.

If you can't make it, fake it.

L
Lexodus Themenstarter:in
254 Beiträge seit 2005
vor 17 Jahren

Hmm vielleicht drück ich mich auch falsch aus.

In Prinzip möchte ich;

Styles Dynamisch generieren. --> muss ich, geht nicht anders
Diese Dynamisch generierten Styles gewissen elementen zu weisen. Der zugewiesen Style darf nicht als string im späteren HTML-Element vorkommen, sondern nur als ID im Element. --> muss ich, geht nicht anders.

Wie ich das erreiche ist in Prinzip egal, solange es keinen total Aufwands-Overkill bedeutet.

If you can't make it, fake it.

L
Lexodus Themenstarter:in
254 Beiträge seit 2005
vor 17 Jahren

Endlich, habe mal rausgefunden wie ich mir den Namen der CSS Klasse geben lassen kann.

Und zwar muss ich zuerst den Style in den Header adden wie beschrieben, was das Property RegisteredCSSClass auf meinem Style objekt füllt, dort steht nun mein generierter key! Das ist schonmal ein grosser Schritt.

Ich such noch weiter wie man den Key setzen kann, vielleicht ist das ja möglich.

In Prinzip kann ich aber damit leben, dass der Stylenamen generiert ist (solange ich den bekomme).

If you can't make it, fake it.

A
154 Beiträge seit 2005
vor 17 Jahren

klingt sehr verwirrend.

Vermutlich wirst du dir was schreiben müssen, welches dir deine Styles in ein css Format ausgibt. Diese Ausgabe fügst du entweder direkt in den Quelltest oder in eine externe .css Datei ein.

Bisla Pseudo Code:
<% StyleBock %> in der aspx Seite

...

StyleBock += ".Text {" + myStyle1.ToString() + "}";
StyleBock += ".Link {" + myStyle2.ToString() + "}";
...

Label1.CssClass = "Text Link";

L
Lexodus Themenstarter:in
254 Beiträge seit 2005
vor 17 Jahren

Finds einfach heftig dass ich son "overkill" bauen muss, wäre eigentlich ja nicht so schwer umzusetzen.

In Prinzip müsste ich ja nur auf meinem Styleobjekt ne ID setzen können und dieses Styleobjekt dann im Header adden, damit er dann meinen Namen nimmt statt nen Namen zu generieren.

Von der Anforderung ist es absolut nichts wildes oder schwer umzusetzendes.

Das einzige was ich ja will ist nen Style dynamisch zu erzeugen und ihn sauber im Header mit meiner ID definieren zu lassen. (Statt ne generierte ID zu nehmen)

Denn im Moment muss ich ja den Style zuerst im Header der Seite adden damit ich ne ID bekomme und das find ich nicht so doll. (Kann aber damit leben)

If you can't make it, fake it.

W
799 Beiträge seit 2004
vor 17 Jahren

Ehrlich gesagt hatte ich in 7 Jahren Webentwicklung noch nie die Anforderung, den Inhalt einer CSS-Klasse dynamisch zu generieren. Und wenn mal was dynamisch einem Element zugewiesen werden muss, dann kann man das per style=""-Attribut zuweisen.

Erklär mal was du genau machen willst, ich nehme dir nämlich nicht ab, dass es nicht anders geht.

L
Lexodus Themenstarter:in
254 Beiträge seit 2005
vor 17 Jahren

Ich arbeite in einere Firma die Finanz - Analyse, Planungs und Balanced Scorecard Applikationen schreibt. (Zum Umsetzen der Unternehmensstrategie und Analyse der Finanziellen ist Situtation).

Unserer Kunden sind unter anderem Banken, die in einem Monat 150 Millionen Sätze in ne Datenbank schreiben. Unsere Software arbeitet genau mit diesen Daten und Visualisiert sie.

Diese Visualisierung geschieht in unserem Fat-Client mittels des Infragistics UltraGrid. Dieses Grid in unserer Implementation ist so weit konfigurierbar das sich jede Zelle innerhalb dieses Grids in Farben, Grösse, Typ, beinhaltene Bilder etc. unterscheiden kann. Jede Zelle in jedem Grid in verschiedenen hierarchien.

Dieses Grid wird von unserer Firma nun ins Web Portiert und ich brauche zwingend diese Zellinformationen, da das ganze Grid sonst seinen Sinn und Zweck total verliert und nicht mehr brauchbar ist.

Da unsere Software es ermöglicht Daten Multidimensional zu analysieren (bis zu 30 Dimensionen) kann man sich vorstellen, das diese Grids (auch nach gewissen Filterungen und Einschränkungen) extrem komplex aufgebaut sind.
Die Cellinformationen (Farbe, Inhalt, etc.) vom eigentlich Grid vom Fatclient, sind total vom Kunden abhängig und generisch. Das heisst ich muss diese Auslesen und in mein Webgrid stecken.

Wenn ich diese Styleinfos einfach so in die Zellen meines Webgrids stecke, so habe ich ja für jede Zelle in meinem Grid einen riesigen overhead, da ich die CSS-Klasse dynamisch generieren könnte und blos die ID des dynamisch generierten Styles dieser Zelle zuweisen könnte.

Die Styles generiere ich aus den Infos die ich von meinem Fatclient Grid erhalte, da Zellen eventuell den gleichen Style benutzen könnten, wäre dies eine zusätliche Optimierung.

Könnte ich das so umsetzen, wären die Anzahl an Megabytes die ich über die Leitung schicke um einen extremen Teil kleiner.

Wenn ich die Styles in den Element-Tag direkt reinschreibe, werden wirklich mega-bytes an Daten übertragen.
Da der Kunde alles bis ins letzte konfigurieren kann hab ich zur Entwicklungszeit keine Ahnung wieviele verschieden Styles es geben könnte, geschweige denn wie das Grid "aussieht", oder die Styles aussehen.

Meine Performance-Optimierung wäre;

Das nur noch CSS-ID's in den HTML-Elemente vorkommen und keine css strings

Zum andern kann ich "Redundante" Formatierung vermeiden.

Den im Moment wäre es ja so, das wenn von meinen 50'000 Zellen, 2 Zellen die gleichen Style infos hätten würden diese Styleinfos beide male in den Elementtag geschaufelt --> Redundants

Keine Optimierung hätte ich wenn eine Zelle vom Fatclient in ihrem "Aussehen" nur ein einziges mal in den 50'000 Zellen vorkommt und das ist nicht wirklich häufig der Fall.

@Edit: Das orginale Posting war mit Emotionen bestückt, ich habe diese Teile umformuliert oder entfernt, habe etwas in den falschen Hals bekommen. Mein Fehler.

If you can't make it, fake it.

W
799 Beiträge seit 2004
vor 17 Jahren

Okay, auf so ein dummes Posting hast du keine Antwort mehr verdient. Und raus 🙂

L
Lexodus Themenstarter:in
254 Beiträge seit 2005
vor 17 Jahren

Was war daran dumm? du hast mich jetzt zum x-ten mal als dödel hingestellt.

Ich hab dir genau gesagt wieso ich es mache und warum und das es nicht anders geht, wenn du mich so provozierst schreibe ich halt zwischen durch mal gross.

Ich denke den Anwendungsfall hast du begriffen, sonst ist halt Pech.

Wenn du in deinen 7Jahren das nie machen musstest, weisst du auch nicht wies geht und du hättest in diesem Thread nie zu posten brauchen, da deine Kommentare nicht konstruktiv waren.

If you can't make it, fake it.

L
Lexodus Themenstarter:in
254 Beiträge seit 2005
vor 17 Jahren

Wenn aber andere Benutzer konstruktive Beiträge hätten wäre ich immernoch froh darum.

@AlfameisterT
Deine Lösung halte ich mir frei falls es nicht anders geht.

Rein ausm Objektmodell von den Styles etc. denke ich ja aber müsste es ja gehen, ohne "direktes" HTML auszugeben?

If you can't make it, fake it.