Autor Beitrag
JensW_2000
Hält's aus hier
Beiträge: 4



BeitragVerfasst: So 28.08.11 10:39 
Ich habe mir eine MasterPage erstellt.
Von diese Masterpage habe ich mir diverse Sub-MasterPages mit unterschiedlichen Layouts usw. abgeleitet.

Im Code-Behind der MasterPage habe ich ein paar Methoden angelegt (public), die mir das Leben etwas leichter machen sollen (isMobileBrowser, getTopMenuItems, getSideMenuItems....).

Wenn ich meine Inhaltsseiten von dieser "Root-MasterPage" ableite, kann ich die Methoden im CodeBehind wie gewünscht aus der Inhaltseite aufrufen.

ausblenden Quelltext
1:
2:
3:
4:
5:
    <% if isMobileBrowser then begin %>
      <link href="/css/layout.3col.mobile.css" rel="stylesheet" type="text/css" />
    <% end else begin %>
      <link href="/css/layout.3col.css" rel="stylesheet" type="text/css" />
    <% end; %>


Meine Sub-MasterPages haben (momentan mal wieder) kein eigenes Code-Behind File.
ausblenden Quelltext
1:
<%@ Master Language="Oxygene" MasterPageFile="~/MasterPage.Master" %>					



Ich schaffe es einfach nicht, die MasterPage Methoden aus den Sub-Mastern aufzurufen.
Beim starten der Website springt mich immer eine Compiler-Warnung an (Unbekannter Bezeichner "isMobileBrowser").

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
Compilerwarnungen:
Warnung: PE9: (PE9) Unbekannter Bezeichner "isMobileBrowser"
Quellfehler:

F:\Development\Projekte\Prism\Web (ASP.Net)\......\Master_3col_Teaser.Master  

Zeile 17: </asp:Content>
Zeile 18: <asp:Content ID="cPhCssLayout" ContentPlaceHolderID="phCssLayout" runat="server">
Zeile 19:     <% if isMobileBrowser then begin %>
Zeile 20:     <link href="/css/layout.3col.mobile.css" rel="stylesheet" type="text/css" />
Zeile 21:     <% end else begin %>



An dem Problem bastele ich nun schon seit Tagen.

Habe versucht:
- eigene Code-Behind Files für die Sub-MasterPages zu bauen
- die global.asap zu nutzen
ausblenden Quelltext
1:
<% =ASP.Global_Asap.isMobileBrowser %>					

- die Methodenaufrufe aus den Sub-MasterPages direkt in der MasterPage zu machen
<% =MasterPage.isMobileBrowser %>
- das CodeBehind File der MasterPage bei den Sub-MasterPages zu hinterlegen
ausblenden Quelltext
1:
<%@ Master Language="Oxygene" MasterPageFile="~/MasterPage.Master" CodeBehind="MasterPage.Master" %>					


Bekomme das nicht hin.
Kann mir jemand einen Tip geben, wie ich "zentrale Methoden" für Master und SubMaster-Pages bereitstellen kann?

Stört euch bitte nicht an der Oxygene Language.
C# und VB Code kann ich auch "lesen" :)



Danke,
Jens
JensW_2000 Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Mo 29.08.11 10:16 
Push, PS :)

Ich formuliere die Frage mal kürzer ...

Meine Masterpage heißt "MasterPage.Master".
Diese MasterPage stellt mehrere öffentliche Methoden und Properties bereit.

Wie kann ich auf diese Methoden bzw. Properties per Inline-Code aus einer Sub-MasterPage zugreifen?
Welche Instanzvariable hat meine MasterPage zur Laufzeit, bzw. wo finde ich das in ASP.Net heraus?

Folgendes habe ich erfolglos getestet:
ausblenden Quelltext
1:
2:
<%= meineMasterPageFunktion() %> 
<%= MasterPage.meineMasterPageFunktion() %>


Auch der Umweg über die Global Asax will bei mir nicht ...
ausblenden Quelltext
1:
<%= ASP.Global_Asax.meineAusgelagerteMasterPageFunktion() %>					


Grüße
Jens
JensW_2000 Threadstarter
Hält's aus hier
Beiträge: 4



BeitragVerfasst: Mo 29.08.11 16:53 
Problem gelöst.
Im ASPX Code der Sub-Master Page muss einfach nur die MasterPage als Elternklasse deklariert werden.

<%@ Master Language="Oxygene" MasterPageFile="~/MasterPage.Master" Inherits="Website_InnovaSoft_de.MasterPage" %>

Schon löppt dat :)

Grüße
Jens