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
Problem mit Pfaden von Grafiken in Masterpage
Phönix
myCSharp.de - Member



Dabei seit:
Beiträge: 67
Herkunft: Fürth

Themenstarter:

Problem mit Pfaden von Grafiken in Masterpage

beantworten | zitieren | melden

Hi Leute,

ich habe bei einer Webanwendung im root Verzeichnis eine Masterseite liegen. Diese wird von allen Seiten verwendet. Die Seiten liegen in ver schiedenen Verzeichnissen und im root Verzeichnis der Webanwendung. Wenn eine Seite im root Verzeichnis drauf zugreift funktioniert es wunderbar da die Pfade im CSS bei der url() Funktion richtig sind. Wenn aber eine Seite in einem Unterverzeichnis die Master verwendet werden die Grafiken nicht gefunden, da er ja vom Unterverzeichnis ausgeht und es aber vom root aus machen müsste

Jetzt meine Frage: Gibt es eine Möglichkeit die Pfade der Masterpage dynamisch zu machen oder eine andere Art diese Masterpage einzubinden, damit die Grafiken von überall geladen werden?

Ich möchte nicht die Grafiken in alle Unterverzeichnisse kopieren oder alle Seiten ins root Verzeichnis legen. Das bringt mir nichts.

Hier noch mal eine Übersicht.

root
|
|-Ordner 1
| |-Seite1.aspx (nutzt Layout.Master)
| |-......
|
|-Ordner 2
| |-Seite1.aspx (nutzt Layout.Master)
|
|-Grafiken
| |-banner.jpg
| |-......
|
|-Layout.Master (nutzt die Grafiken über CSS mit url(Grafiken/banner.jpg) )
|-Seite1.aspx (nutzt Layout.Master)
|-......


Hoffe das mit der Übersicht es etwas verständlicher wird.
Danke schon mal im Voraus.

MfG Phönix
private Nachricht | Beiträge des Benutzers
MarsStein
myCSharp.de - Experte

Avatar #avatar-3191.gif


Dabei seit:
Beiträge: 3.163
Herkunft: Trier -> München

beantworten | zitieren | melden

Hallo,

normalerweise mit

ResolveClientUrl("~/Grafiken/banner.jpg")
,
allerdings musst Du dann den Style direkt in der MasterPage (nicht in einer externen .css) definieren, damit Du das dynamisch auflösen kannst.

Gruß, MarsStein
Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca
private Nachricht | Beiträge des Benutzers
elron
myCSharp.de - Member



Dabei seit:
Beiträge: 171
Herkunft: Berlin

beantworten | zitieren | melden

Du musst die CSS nicht direkt in die Master.Master reinschreiben nimm einfach den Code und teste mal.


VirtualPathUtility.ToAbsolute("~/Resources/MyPic.jpg"):

.elron
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von elron am .
private Nachricht | Beiträge des Benutzers
Phönix
myCSharp.de - Member



Dabei seit:
Beiträge: 67
Herkunft: Fürth

Themenstarter:

beantworten | zitieren | melden

Danke für die schnellen Antworten.
Eure Ansätze sind schon mal nicht schlecht, aber leider verwende ich die Grafiken nicht in C# sondern direkt im Style bei div. Das würde heißen ich müsste für die ganzen Sachen mit response.write das div schreiben damit ich die pfade verwenden kann. Hmm eine Lösung aber nicht gerade das was ich mir gedacht hatte.
private Nachricht | Beiträge des Benutzers
elron
myCSharp.de - Member



Dabei seit:
Beiträge: 171
Herkunft: Berlin

beantworten | zitieren | melden

Poste mal den Abschnitt bitte ..

.elron
private Nachricht | Beiträge des Benutzers
Phönix
myCSharp.de - Member



Dabei seit:
Beiträge: 67
Herkunft: Fürth

Themenstarter:

beantworten | zitieren | melden

Ich hab eine Lösung gefunden.

Der Ansatz mit dem Webanwendungsrootzeichen (~) war der richtige.

Ich hab einfach das normale div das es nicht kann durch ein Panel ersetzt. Das Panel stellt ja dann auch ein div dar.
<asp:Panel runat="server" BackImageUrl="~/Layout/banner_fill.jpg" Height="100" />
zu
<div style="height: 100px; background-image: url(~/Layout/banner_fill.jpg)">
</div>

dann nimmt er immer den richigen Pfad. Danke noch mal an euch beide.

MfG Phönix
private Nachricht | Beiträge des Benutzers
elron
myCSharp.de - Member



Dabei seit:
Beiträge: 171
Herkunft: Berlin

beantworten | zitieren | melden

achsooo das wolltest du naja ich würde bei der DIV bleiben und es so machen.


<div style'<%#="height: 100px; background-image: url"+
VirtualPathUtility.ToAbsolute("~/Layout/banner_fill.jpg") %>'>
und in der PageLoad machste am Ende ein this.DataBind();

Ich würde kein Panel nehmen wenn Du nur eine Div haben willst.
Das Panel bringt ja viel mehr mit als nur ein normales Div.

.elron
Dieser Beitrag wurde 1 mal editiert, zum letzten Mal von elron am .
private Nachricht | Beiträge des Benutzers