2009-12-21 4 views
0

à la page principale i hvae ce code ici, je suis en mesure d'obtenir la valeur sur la façon dont chaque chargement de page dans Staffnamecomment accéder à ma valeur de page maître dans ma page enfant .aspx Page

<asp:ScriptManager ID="scriptManager" runat="server" /> 
      <script type="text/javascript" language="javascript"> 
     // attach to the pageLoaded event 
       Sys.WebForms.PageRequestManager.getInstance().add_pageLoaded(pageLoaded);   

function pageLoaded(sender, args) 
{ 
    var Staffname='<%= obj.ClientID %>'; 
    // this i am getting from code behind .i am able to get the value     

} 
    </script> 

cette fonction exécute

Alors maintenant, ma page principale i besoin d'accéder à cette valeur dans la page .aspx est-il possible que je peux le faire

Anyhelp serait génial

merci

Répondre

0

Je ferais probablement cela en ayant la page héritée d'une interface qui contient la propriété que vous voulez définir. Ensuite, cast la propriété "Page" à cette interface (peut-être mettre une vérification là-bas pour s'assurer que c'est ce type).

Dans le MasterPage:

public void Page_Load(object sender, EventArgs e) 
{ 
    IMyPage page = Page as IMyPage 
    if(page != null) 
    { 
     //use page.MyProperty 
    } 
} 

Dans le code de la page derrière

public class MyPage : Page, IMyPage 
{ 
    // From the interface IMyPage 
    public string MyProperty { get { return MyTextBox.ClientID; } } 
} 
0

Dans votre classe page enfant (en supposant qu'il ne fera jamais avoir un type de page principale appelée, par exemple, « MPClass ", et en supposant que la propriété sur la page principale est appelée" YourProperty ", vous feriez:

var myPropertyFromMasterPageInChild = ((MPClass)Master).YourProperty; 
+0

Cela fonctionnerait également - repose uniquement sur le paramètre Page que ClientId dans le javascript, plutôt que la MasterPage (qui est où il réside) – Paul

2

Pour accéder votre page principale, vous devez insérer un lien sur la page d'enfant:

<%@ MasterType TypeName="YourMasterPage" %> 

Vous pouvez y accéder en exposant les propriétés publiques dans la page principale et référencement juste le maître par:

string someValue = Master.YourControlProperty; 
// or 
int someIntValue = Master.GetSomeIntValue(); 
+0

Cela fonctionnerait aussi bien, mais il nécessite toujours la page pour définir le javascript, Idéalement, la page MasterPage devrait définir le javascript car c'est là où il existe réellement – Paul

Questions connexes