I controlli del contenuto devono essere controlli di primo livello in ...

mercoledì 07 luglio 2010 - 18.53

Gemini Profilo | Expert

Ciao a tutti
ho il seguente problema:
voglio associare ad una pagina una masterpage in base al valore di un campo.
Ho fatto in questo modo nella pagina cliente.aspx:

protected void Page_PreInit(object sender, System.EventArgs args)
{
if (!Page.IsPostBack)
{
string codice_cliente = Request["id"];
if (!string.IsNullOrEmpty(codice_cliente))
hdCodiceCliente.Value = codice_cliente;
else
codice_cliente = string.Empty;

if (string.IsNullOrEmpty(codice_cliente))
Master.MasterPageFile = "~/Admin/MasterPageAdmin.master";
else
{
Master.MasterPageFile = "~/Admin/MasterPageAdminCliente.master";

HiddenField hdCodiceClienteMaster = (HiddenField)Master.FindControl("hdCodiceCliente");
hdCodiceClienteMaster.Value = codice_cliente;
}

hdCodiceCliente.Value = codice_cliente;
}
}

Appena terminato Page_PreInit ricevo questo errore:

"I controlli del contenuto devono essere controlli di primo livello in una pagina contenuto o in una pagina master nidificata che fa riferimento a una pagina master."

Qual'è l'errore e come si risolve?
Grazie mille

Gluck74 Profilo | Guru

la pagina cliente.aspx è settata come pagina "content" o come webform?

hai specificato una masterpage di default, anche se poi la cambi da codice?

Inoltre credo che l'istruzione
HiddenField hdCodiceClienteMaster = (HiddenField)Master.FindControl("hdCodiceCliente");
non possa essere ancora fatta nel PreInit. Devi aspettare un evento successivo.

Ciao

____________
Ricordati di utilizzare il tasto "Accetta" se i nostri consigli ti sono serviti a risolvere il problema.
È il modo per ringraziare chi ti ha aiutato.

Gemini Profilo | Expert

Ho trovato. Devo fare this.MasterPageFile...
Così funziona

Gluck74 Profilo | Guru

giustissimo, non ci avevo fatto caso.
in effetti "Master.masterPageFile" non ha senso......
hi hi hi

ciao

____________
Ricordati di utilizzare il tasto "Accetta" se i nostri consigli ti sono serviti a risolvere il problema.
È il modo per ringraziare chi ti ha aiutato.
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