2012-06-19 1 views
6

Ho una pagina di contenuto Sto aggiornando il valore di asp: etichetta della pagina Master dalla pagina di contenuto. il valore viene aggiornato ma il valore aggiornato non è visibile. Ho provato due metodi utilizzandovalore dell'etichetta della pagina principale non viene aggiornato il contenuto del modulo pagina

1). definizione di una proprietà (sulla pagina principale) per impostare e ottenere il valore dell'etichetta. ad es.

public string setErrorMsg 
{   
    get { return lbl1.Text; } 
    set { lbl1.Text = value; } 
} 

2) trovando il controllo (etichetta della pagina principale) dalla pagina del contenuto e impostandone il testo. ad es.

Label lblMasterError = this.Page.Master.FindControl("lbl1") as Label; 
lblMasterError.Text="text is updated form content page"; 

entrambi stanno aggiornando valore se lo vedo in modalità debug, ma valore dell'etichetta aggiornato non è visibile sul page.What contenuti potrebbero essere le possibili ragioni di questo comportamento?

+2

Quale evento è questo codice in ? È possibile che tu lo imposti dopo che è stato reso. – MNGwinn

+0

Sto aggiornando il valore dell'etichetta della pagina principale sull'evento clic del pulsante nella pagina di contenuto. –

risposta

1

Non so perché non trova la tua etichetta ma ho avuto lo stesso prima. questo è ciò che funziona per me:

Nella pagina master cs:

public void SetErrorMsg(string ErrorMsg) 
{ 
    this.lbl1.Text = ErrorMsg; 
} 

Da codice della pagina aspx alle spalle (sostituire nome myMasterPage w/il vostro):

((myMasterPage)Master).SetErrorMsg("Some error text"); 
+1

Ho risolto i problemi da solo dopo molte ricerche. Il problema era che sto aggiornando l'etichetta della pagina principale attraverso la pagina del contenuto che contiene il pannello aggiornato. Ci sono due soluzioni a questo problema. 1) restituire un post parziale utilizzando il trigger del pannello aggiornato su alcuni eventi. oppure (2) Se non si desidera che il postback della pagina inserisca l'etichetta della pagina master in un pannello di aggiornamento e utilizzi la proprietà di controllo find per il pannello di aggiornamento e richiami la funzione di aggiornamento integrata del pannello di aggiornamento UpdatePanel up_pnl = UpdatePanel) Master.FindControl ("UpdatePanel1 "); quindi chiama dopo aver aggiornato il testo dell'etichetta up_pnl.update(). –

+0

Ciao Maometto attuale affronto lo stesso problema. Dove trovi il pannello di aggiornamento. Si chiama questo codice nella pagina principale o nella pagina di contenuto. Si prega di inserire il codice qui. –