2010-09-06 17 views
12

Mam stronę Master:ASP.net dostęp do zmiennej strony wzorcowej za pośrednictwem strony partnerskiej

<%@ Master Language="C#" AutoEventWireup="true" Codefile="AdminMaster.master.cs" Inherits="AlphaPackSite.MasterPages.AdminMaster" %> 

Wtedy mam zmienną publiczną:

public partial class AdminMaster : System.Web.UI.MasterPage 
{ 
    protected bool blnShowDialogue = false; 

W moim zawartości strony chciałbym ustawić tę zmienną:

blnShowDialogue = true; 

Tak, że na mojej stronie wzorcowej mogę mieć c Od:

$(function() { 
    <%if(blnShowDialogue == true){%> 
     $("#dialog").dialog(); 
    <% } %> 
    } 

Czy to ma sens? Kiedy próbuję kombinacji Master.blnShowDialogue lub blnShowDialogue =, etc etc nic nie działa.

nazwa „blnShowDialogue” nie istnieje w bieżącym kontekście

Odpowiedz

12

Zastosowanie @MasterType, jak wyjaśniono tutaj:

http://msdn.microsoft.com/en-us/library/c8y19k6h.aspx

+0

Masz rację, nawet nie zauważyłeś, że tego brakowało w jego deklaracji. +1. – RPM1984

+0

Dzięki za odpowiedź, ale wciąż jestem trochę zagubiony! Gdzie mam umieścić tę dyrektywę? –

+1

Cześć Tom, musisz umieścić go pod swoją dyrektywą @page na stronach .aspx. – mamoo

5

Trzeba rzucić strony wzorcowej do rzeczywistego typu.

((AdminMaster)Master).blnShowDialogue = "Foo"; 

Inaczej Mistrz będą po prostu odnosi się do klasy bazowej Mistrza - próbujesz uzyskać dostęp do obiektu rzeczywistego klasy, która wywodzi z Mistrza klasie.

Błąd otrzymujesz dlatego właściwość o nazwie blnShowDialogue nie istnieje w klasie System.Web.UI.MasterPage - co ma sens, a nie mówisz tego, który konkretny MasterPage instancja jesteś próbuje nawiązać do.

Nadzieję, że pomaga.

dyrektywa
+1

Dzięki, ale to daje błąd, \t typu lub obszaru nazwa „AdminMaster” nie można odnaleźć (czy brakuje using dyrektywa lub odniesienie do zespołu?) –

+0

@Tom - @ odpowiedź mamoo jest poprawna (nie patrzyłem wystarczająco dokładnie na swoją dyrektywę Master page), dajcie mu szansę. – RPM1984

Powiązane problemy