Proprietà pubbliche master page

lunedì 20 novembre 2006 - 17.33

lcabrin Profilo | Newbie

Salve a tutti,

utilizzando asp.net 2.0 e le pagine master mi è capitato di dover leggere una proprietà pubblica da me creata nella master dalla pagina content. Diversi libri spiegano di fare cosi (ok, non c'era bisogno di leggerlo ;-):

Partial Class ClassOfMasterPage..


Public Property MyName() As String
Get
Return _myName
End Get
Set(ByVal value As String)
_myName = value
End Set
End Property

End Class

Quando però dalla pagina content cerco di fare:

Me.Master.MyName = "Pippo" la proprietà non mi viene esposta.....
Qualcuno mi sa aiutare e far capire perchè non deve funzionare??

Grazie a tutti e buona serata!

Loris Cabrini

Ops, dimenticavo: ovviamente ho usato la direttiva MasterType per castare la partial class della master page

freeteo Profilo | Guru

ciao,
quello che concettualmente ti aspetti, in realta' quando si esegue l'applicazione non è tipizzato, perche' se vai a guardare la definizione proprio a livello Framework della proprieta' "master" di una "Page" oovero (System.Web.UI.Page) è proprio una MasterPage (System.Web.UI.MasterPage) ma generica,non è quella tua
A runtime sara' quella tua ma il compiler non lo sa ancora, anche per potenzialmente lo potresti cambiare anceh da codice etc...quindi devi "castare" quella proprieta' sulla tua MasterPage, qualcosa come:

((miaMasterPage)Page.Master).miaProprieta = true;

dove miaMasterPage è il mome della classe che fa da master ovviamente...

ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo

mischiri Profilo | Newbie

giusto per info... e scusate il ritardo :) ....

è possibile avere l'intellisense per leggere le proprietà della master page e tutto quello che è pubblico andando ad aggiungere nel file aspx dopo la direttiva della master page questa riga :

<%@ MasterType VirtualPath="MasterPage.master" %>

in questo modo si evita di effettuare il cast del tipo

Ciao
Michele

freeteo Profilo | Guru

ottimo! grazie per la precisazione, cosi' si è piu' eleganti sicuramente.
ciao.

Matteo Raumer
[MCAD .net]
http://blogs.dotnethell.it/freeteo
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5