| 

.NET C# Java Javascript Exception

0
Hallo zusammmen,
ich möchte ein ASP.net Server Control entwickeln, welches "Nutzer" beliebig in VS aus der Toolbox in ihre Anwendungen droppen können. Basis für die spätere Ausgabe des Controls ist eine zuvor statisch vorbereitete HTML Datei, die CSS Angaben enthält. Das Control soll dann später abhängig von den übergebenen properties einzelne DIV erzeugen, die je nach an die Properties des Controls übergebenen Werte verschiedene Klassen des Stylesheet verwenden, die dann die Optik steuern.

Das Problem ist, dass in dem CSS für den Hintergrund einzelner HTML-Elemente Grafiken verwendet werden sollen. Es gelingt mir nun zwar, die Grafiken in mein Control einzubetten und zur Laufzeit diese Grafiken zum Einsatz zu bringen. Allerdings gelingt es mir nicht, dies über die background-image: url(...) Angaben im Stylesheet zu erreichen.

Web-Rcherchen haben mich daingehend nicht weiter gebracht. Es wird überall erklärt wie man Grafiken im Control registriert und später ausgibt, das gelingt. Ebenso wird erklärt wie man das gleiche mit CSS Files macht. Das gelingt auch. Ich suche sozusagen jedoch die Kombination, also eingebettete Grafiken aus der eingebetteten CSS Datei zu adressieren.

Die treffendste aber leider unbeantwortete Frage habe ich hier gefunden: http://forums.asp.net/t/1571671.aspx/1

Kann mir jemand weiterhelfen?
Grüße, Markus
News:
22.09.2011
Magier77 238 1 6
Ist meine Frage schlecht formuliert oder bin ich so falsch unterwegs? Oder weiß es keiner? Hilfe...
Magier77 29.09.2011
2 Antworten
0
Thema erledigt. Es ist so einfach, dass es für mich nicht offensichtlich war:
Die in dem embedded CSS angesprochenen Bilddateien, die ebenfalls embedded sind, lassen sich unverändert aus dem CSS heraus mit ihren Namen ansprechen.

Beispiel:
Servercontrol:
//MAP BG
output.AddAttribute("id", "bg");
output.RenderBeginTag("div");


CSS File:
#bg 
{
position:relative;
border:1px solid #000;
width:100%; height:85%;
background-image:url(images/MapBG.png); background-repeat:repeat
}


Fertig.
29.09.2011
Magier77 238 1 6
Ja, denkste. Das funktioniert, wenn man vorher so schlau war und testweise die einzubettenden Grafiken 1:1 in der konsumierenden Webanwendung auch angelegt hat... und sich selber auf den Leim geht. Klar dass die dann mit diesen Namen da sind. Das ist aber leider nicht mein Ziel und funktioniert mit den ebmedded Grafiken so natürlich nicht... brauche daher weiterhin Hilfe... :(
Magier77 29.09.2011
0
Für all diejenigen, die ein ähnliches Problem haben sollten: Es ist relativ einfach, wenn man nicht sow wie ich versucht, das css in eine css Datei zu packen sondern gleich mit in das Control rendert.

Es geht zwar auch mit einer separaten CSS Datei, funktionierendes Beispiel gibt es hier: http://blog.justinstolle.com/webcontrol-with-embedded-stylesheet-rendering-at-design-time/, aber wie er das macht, hab ich noch nicht nachvollzogen.

Stattdessen bettet man das CSS entsprechend ganz einfach in die Control Datei mit ein:

sb.AppendLine("#bg  {");
sb.AppendLine("position:relative;");
sb.AppendLine("border:1px solid #000;");
sb.AppendLine("background-image: url('" + Page.ClientScript.GetWebResourceUrl(typeof (myWebControls.ElanStatusMap.ElanStatusMap), "myWebControls.Resources.MapBG.png") + "'); ");
sb.AppendLine("background-repeat:repeat;");
sb.AppendLine("} ");


Viele Grüße.
04.10.2011
Magier77 238 1 6

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH