Capire le MasterPage

venerdì 27 marzo 2009 - 12.34

mv Profilo | Newbie

Buon giorno. Stamani avevo questa necessità: pagina richiama.aspx con 3 button.

BUTTON1 BUTTON2 BUTTON3
__________________________

Premendo il bottone 1, doveva succedere questo: l'header della pagina (contenente i 3 bottoni di navigazione) doveva rimanere tale e quale, il
corpo della pagina doveva cambiare a seconda del bottone premuto. Quindi, leggendo quà e là su ipotetiche frame, ho scoperto che la soluzione migliore
è l'uso delle master page. Allora ho aggiunto una master page nella quale ho inserito 4 ContentPlaceHolder.
Nel primo ci ho messo l'header ossia i 3 bottoni e l'ho chiamato: CPHHeader
Nel secondo ci ho messo una scritta: "CIAO PAGINA 1" e l'ho chiamato CPHBody1
Nel terzo ci ho messo una scritta: "CIAO PAGINA 2" e l'ho chiamato CPHBody2
Nel quarto ci ho messo una scritta: "CIAO PAGINA 3" e l'ho chiamato CPHBody3

Adesso torno nella mia pagina chiamata richiama.aspx e da qui nascono le
incomprensioni.

Questo è il codice della pagina (semplicissimo)

<%@ Page Language="VB" MasterPageFile="Tickets.master" AutoEventWireup="true" CodeFile="richiama.aspx.vb" Inherits="Applicazioni_Segnalazioni_richiama" %>
<%@ MasterType VirtualPath="Tickets.master" %>
<%@ Import Namespace="Applicazioni_Segnalazioni_MasterPage" %>

<asp:Content ID="content1" runat="server" ContentPlaceHolderID="CPHHeader"></asp:Content>
<asp:Content ID="content2" runat="server" ContentPlaceHolderID="CPHBody1"></asp:Content>
<asp:Content ID="content3" runat="server" ContentPlaceHolderID="CPHBody2"></asp:Content>
<asp:Content ID="content4" runat="server" ContentPlaceHolderID="CPHBody3"></asp:Content>

Però non riesco a capire come funzionino e far si che: quando la pagina si
carica, il primo CPH deve sempre rimanere visibile (perchè ci sono i bottoni
di navigazione)

il secondo terzo e quarto devono apparire o scomparire a seconda del bottone
che premo. Come posso fare?

Grazie!!
MaVerina

balfaz Profilo | Expert

se vuoi che questi bottoni rimangono visibile allora non devono trovarsi dentro una ContPg ma bensì dentro l'header della master page
la master page fa una sorta di cornice e i pezzi cambianti sono ovviamente quelli che si trovano dentro questa cornice, questo pero non ti impedisce d'avere delle masterpage annidate.

Ti do questi link che ti faranno capire un po meglio
http://msdn.microsoft.com/it-it/library/cc185075.aspx

Dove troverai sempre una mano disposta ad aiutarti è nell'estremo del tuo proprio braccio

mv Profilo | Newbie

Ti ringrazio del link che adesso mi metterò a leggere, una domanda però che non sono sicura. Ma per quello che voglio fare io:
modificare il corpo di una pagina in base al bottone premuto, vanno bene le master page?

Nel senso, come posso fare questo:

Se bottone1 = premuto
allora
ContentPlaceHolder1.visibile= true
ContentPlaceHolder2.visibile= false
ContentPlaceHolder3.visibile= false
fine

Nel senso, l'header rimane uguale e ok, ma come cambio le visualizzazioni dei placeholder in base a eventi? tipo il click di un bottone?
Ciao e grazie!

balfaz Profilo | Expert

non funziona cosi.

chiude gli occhi (ovviamente dopo aver letto questo, se non no lo puoi leggere ) e immagina
la master come un contenitore, ogni Content che crei dentro la master potrà avere dentro di se una pagina (sia html o aspx), che alla sua volta queste pagine dovranno dire al suo interno che loro si presenteranno ogni volta che vengono chiamate dentro questa content, quindi basterebbe che questi bottoni chiamano direttamente la pagina (response.redirect("miaPagina.aspx")) e questa se presenterà nel content specificato dentro la masterpage che lo contiene... non so si mi spiego?, ma non metterti in testa cose strane solo per il termino content, perchè alla fine tu continuerai a lavorare sempre con pagine.aspx che però hanno già una posizione definita dentro un layout..... pensa alle content come una sorta di iframe in html

Siamo sempre qui

Dove troverai sempre una mano disposta ad aiutarti è nell'estremo del tuo proprio braccio

mv Profilo | Newbie

Ciao Belfaz sei gentilissimo e scusa se ti ho massacrato con tutte queste domande ma ti voglio chiedere l'ultimo favore.

Ho chiuso gli occhi ed ho immaginato. Purtroppo era come pensavo le MP non fanno al caso mio.
Quindi, correggo il tiro e faccio un passetto indietro, ritornando alla mia effettiva necessità :)

Faccio un esempio pratico tipo il mio
Ho un pagina chiamata classifiche con dentro 3 bottoni in alto: Serie A, Serie B, Serie C.
Ho tre pagine aspx contenti le classifiche dei 3 gironi chiamate: seriea.aspx, serieb.aspx e seriec.aspx.

Vorrei che: premendo il bottone 1 si veda il contenuto della serie a con il 2 la serie b ecc, senza però aprire una nuova pagina, una specie dei vecchi FRAME per intenderci.

Come si può fare?

Grazie, sei gentilissimo

balfaz Profilo | Expert

risponde queste domande per farmi una idea del tuo ambiente di sviluppo:
cosa usi per far vedere queste classifiche, gridview, datalist o cosa?
Alla fine la usi la masterpage o no?
non fare la carica di una pagina nuova cosa intendi?

>scusa se ti ho massacrato con tutte queste domande
non ti preoccupare si entri in un forum e per fare domande




Dove troverai sempre una mano disposta ad aiutarti è nell'estremo del tuo proprio braccio

mv Profilo | Newbie

Dunque, in questa pagine c'è un po di tutto.
In una textbox label dropdownlist
nella seconda gridview
nella terza gridview e qualche bottone.

Gentilissimo :)

balfaz Profilo | Expert

ti invio questo allegato, l'ho fatto velocemente e senza avere cura nei dettagli ma per farti capire come funziona la master.

Se ci son problemi siamo sempre qui, buon divertimento

Dove troverai sempre una mano disposta ad aiutarti è nell'estremo del tuo proprio braccio

mv Profilo | Newbie

Grazie, da qui non posso leggere la webmail (proxy) appena arrivo a casa provo e domani mattina ti faccio sapere :)

Sei stato davvero gentilissimo!

balfaz Profilo | Expert

Di niente
Dove troverai sempre una mano disposta ad aiutarti è nell'estremo del tuo proprio braccio
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