2011-10-01 6 views
10

Ecco il file della mia pagina principale. Ho bisogno di pAss strName, id, url, startime ecc. Variabili alla pagina figlio. So che possiamo scrivere questa logica anche nella nostra pagina bambino. Ma, vorrei accedere a questa variabile della Pagina Master solo nella pagina bambino. Si prega di suggerire. Non riesco a scrivere questa logica in ogni metodo set/get. Durante l'accesso a queste variabili nella pagina figlio, ottengo valori nulli. in pratica qui la pageload padrone chiama quando dopo pageload figlio chiama sopraVariabili della pagina di Access Master nella pagina secondaria in asp.net

1) NOME MASTER PAGINA: MyMasterPage

public partial class MyMasterPage: MasterPage 
{ 
    public string strName = string.Empty; 
    public string id= string.Empty; 
    public string url = string.Empty; 
    public string startTime = string.Empty; 
    public string endTime = string.Empty; 
    public string remoteUrl = string.empty; 

    public void Page_Load(object sender, EventArgs e) 
    { 

     DataTable dtEventTable = DataAccessManager.GetEventInfo(Connection); 

     if (dtEventTable.Rows.Count > 0) 
     { 
       strName = dtEventTable.Rows[0]["NAME"].ToString(); 
       id = dtEventTable.Rows[0]["ID"].ToString(); 
       url= dtEventTable.Rows[0]["URL"].ToString(); 
       starttime = dtEventTable.Rows[0]["starttime"].ToString(); 
       endtime = dtEventTable.Rows[0]["endtime"].ToString(); 
       remotelive = dtEventTable.Rows[0]["remotelive"].ToString(); 
       // assume that strName = "TCG",id=5, startime=20111001 etc. 
     } 
    } 
} 
+2

Cosa succede a questo thread? - http://stackoverflow.com/questions/7619342/access-master-page-variable-to-child-page – adatapost

risposta

-3

È possibile utilizzare Session oggetto [] per raggiungere le variabili da un'altra pagina.

+0

-1: no, non è possibile. –

+0

perché? Puoi spiegare per favore? Voglio imparare .. –

+0

Perché 'Session' non ha nulla a che fare con le variabili di un'altra pagina. –

11
string name = ((MyMasterPage)this.Master).strName; 

Leggi Working with ASP.NET Master Pages Programmatically

+0

Ho usato il approccio sopra, qui sto ottenendo valori nulli nella variabile nome. faccio il debug del codice. il primo bambino page_load chiama quindi le chiamate di caricamento della pagina principale. – Padmanabha

0

trovato questo da Ramesh T sul https://forums.asp.net/post/5557778.aspx

U meglio creare un riferimento fortemente tipizzato per ur pagina master con l'aggiunta di una direttiva @ MasterType in ur contenuti (pagina aspx) come mostrato sotto

<%@ MasterType virtualPath="~/MasterPage1.master"%> 

e accedere ai suoi membri nella tua pagina aspx o il codice dietro (aspx.cs), come di seguito

var test1Text = Master.test1; 

In questo modo non è necessario eseguire il cast.

Problemi correlati