Aggiungere attributi al tab body

lunedì 17 maggio 2010 - 23.07

alexmed Profilo | Guru

Ciao a tutti
in questo articolo http://msdn.microsoft.com/it-it/library/7a9d6h4f(v=VS.80).aspx è spiegato come aggiungere un attributo al tag <body>

Ma se si usa una masterpage come si deve fare?

Grazie

alexmed

Pinky Profilo | Junior Member

Crei dei metodi pubblici sulla Master che facciano il lavoro, ad esempio: AddAttribute(...), SetStyle(...), SetBgColor(string color).

Alessandro

alexmed Profilo | Guru

Ciao
mi manca un pezzo:

Questo è il codice della MasterPage:

Partial Class MasterPage Inherits System.Web.UI.MasterPage Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load End Sub Public Sub AddAttributeMap() body.Attributes.Add("onload", "GetMap();AddPushpin();") End Sub End Class


Poi nella mia pagina devo richiamare la sub, giusto?

Partial Class map Inherits System.Web.UI.Page Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load AddAttributeMap() End Sub End Class

Solo che mi dà errore, non mi riconosce la Sub

alexmed

alexmed Profilo | Guru

EUREKA!!!!


nella pagina Map per richiamare la sub devo mettere:

Dim m As MasterPage = CType(Page.Master, MasterPage)
m.AddAttributeLoad()


Grazie

alexmed

Pinky Profilo | Junior Member

Se nell' .aspx inserisci questo comando (direttiva)
<%@ MasterType VirtualPath="~/MyMaster.master" %>
eviti di fare l'override della proprietà Master dell'oggetto Page.

Nel code-behind sia a run-time che a design-time ha il cast già fatto, ovvero Page.Master ti torna già la tua MyMaster
e quindi ti bastascrivere Master.AddAttributeLoad(), Page o this possono essere omessi.

Ciao
Alessandro

alexmed Profilo | Guru

Ok
Stasera modifico.
A dire il vero, ma a questo punto dubito che sia la stessa cosa, avevo provato ad inserire nel code-behind della pagina Map.aspx:
Imports MasterPage
proprio per avere il riferimento alla Master, ma come si può intuire mi dava errore.

Grazie


PS
Abbi pietà ma con ASP.NET sono ancora alle prime armi.
alexmed

Pinky Profilo | Junior Member

Utilizzare il cast come hai pensato di fare tu VA BENISSIMO, era il modo di fare che ho usato fino a non molto tempo fa. Addirittura mi pare di averlo visto in qualche template (del VS 2005 o VS 2008) o comunque in qualche guida ufficiale; non è che esistano poi tante alternative.
L'uso della direttiva lo conoscevo ma è solo da poco che l'ho adottata come standard (dopo averne appreso l'effetto "auto-cast" da un libro).
Quindi il mio è solo un suggerimento per un eventuale passo successivo, trovo sia un vantaggio riuscire ad "arrivare" a certi meccanismi da soli per poi scoprire che in ASP.NET hanno già messo delle "semplificazioni" che fanno tale lavoro.
Peggio sarebbe usare queste scorciatoie ma non sapere di quali "magie" siano frutto. Alcuni colleghi trovandosi con del codice tipo
Master.ShowMessage ("testo messaggio", MessageType.Error)
non sapevano quale meccanismo ci fosse dietro.
Difatti cercavano tale funzione in progetti nuovi (dove questa non era ovviamente stata implementata)... credendo che fosse una funzione del framework (!).


"Imports" (VB) oppure "using" (C#) dicono solo che si vuole usare un namespace, non una classe, e tale namespace deve essere presente in una delle librerie aggiunte come "Reference".

Ciao

alexmed Profilo | Guru

Ciao e grazie.
Se ogni Post si concludesse con una spiegazione così chiara e semplice sarebbe fantastico ma aimè non sempre è fattibile.
Io stesso le, rare, volte che aiuto gli altri mi limito a passare un codice al quale, per ovvie ragioni di competenze, non sò dare spiegazione!!

Grazie mille di tutto.

alexmed
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