Comment accéder à une propriété définie sur ma masterpage à partir de codebehind dans un usercontrol?Accès à la propriété masterpage à partir d'un contrôle utilisateur
Répondre
Page.Master expose la page maître sous-jacente, le cas échéant.
var master = (this.Page.Master as SiteMaster);
if (master != null)
{
var myProperty = master.MyProperty;
}
this.NamingContainer.Page.Master.Property;
Dans le cas de votre page maître est fixe que vous pouvez trouver le contrôle et la propriété comme ceci:
MasterPageName mp =(MasterPageName) Page.Master;
//find a control
Response.Write((mp.FindControl("txtmaster") as TextBox).Text);
//find a property
Response.Write(mp.MyProperty.Text);
// sur MasterPageName.cs
public TextBox MyProperty
{
get { return txtmaster; }
}
// sur MasterPageName.Master
<asp:TextBox runat="server" ID="txtmaster"></asp:TextBox>
-1: il ne dit rien sur l'accès à un contrôle –
Si le MasterPage est comme ça,
public partial class MasterPage : System.Web.UI.MasterPage
{
protected void Page_Load(object sender, EventArgs e)
{
//
}
// the property which I would like to access from user control
public String MyName
{
get
{
return "Nazmul";
}
}
}
Ensuite, le contrôle de l'utilisateur, vous pouvez accéder à "MonNom" de cette façon,
MasterPage m = Page.Master as MasterPage;
Type t = m.GetType();
System.Reflection.PropertyInfo pi = t.GetProperty("MyName");
Response.Write(pi.GetValue(m,null)); //return "Nazmul"
Autant que je compris:
- il y a une Page maître (MasterPage.master)
- une page Web (Default.aspx) qui utilise MasterPage.
- la page Web dispose d'un contrôle utilisateur.
- Désormais, vous souhaitez accéder à une propriété d'une page MasterPage à partir de ce contrôle utilisateur.
Disons que dans le MasterPage il y a une propriété appelée nom comme
public string Name{ get{return "ABC";} }
Vous voulez accéder à cette propriété du UserControl. Pour cette raison, vous devez d'abord enregistrer la page maître dans le contrôle utilisateur comme ceci.
<%@ Register TagPrefix="mp" TagName="MyMP" Src="~/MasterPage.master" %>
vous allez maintenant d'abord obtenir la référence de la page ce contrôle utilisateur réside et puis obtenir le Maître page de cette page. Le code sera comme ça.
System.Web.UI.Page page = (System.Web.UI.Page)this.Page;
MasterPage1 mp1 = (MasterPage1)page.Master;
lbl1.Text= mp1.Name;
- 1. Accès à la valeur aspx à partir d'un contrôle utilisateur
- 2. Accès à la fenêtre parent à partir du contrôle utilisateur
- 3. Accès à un contrôle Web dans un contrôle utilisateur à partir du constructeur du contrôle utilisateur
- 4. Contrôle utilisateur ASP.NET et accès à une propriété à partir de Javascript?
- 5. Accès à la propriété ItemsPanel à partir de DataTemplate
- 6. Contrôle utilisateur accès à partir du code derrière le problème
- 7. Accès à un contrôle utilisateur ASP.Net
- 8. données modèle ASP.NET MVC Accès à masterpage
- 9. Masquer AutoGenerateRows à partir d'un contrôle utilisateur?
- 10. Accès à la valeur à partir des contrôles d'un contrôle utilisateur Web chargé dynamiquement (asp.net C#)
- 11. Commandes utilisateur dans masterpage et utilisateur anonyme
- 12. Accès à la page un objet de MasterPage qui hérite d'un autre MasterPage
- 13. Accès à ToolKitScriptManager/ScriptManager à partir du contrôle personnalisé
- 14. immédiatement accès à la propriété
- 15. référence une propriété masterpage
- 16. Modification d'un contrôle utilisateur à l'intérieur de la propriété dehors
- 17. Comment lier une valeur à la propriété de contrôle utilisateur?
- 18. Accès au contrôle enfant d'un contrôle utilisateur
- 19. Accès à une page maître personnalisée à partir d'un contrôle utilisateur
- 20. Accès à une variable publique de page maître à partir du contrôle utilisateur
- 21. accès à une propriété
- 22. Débogage d'un contrôle utilisateur à partir d'ASP.NET
- 23. Comment puis-je accéder à une propriété publique d'un contrôle utilisateur à partir de codebehind?
- 24. Accès par programme à un contrôle à partir d'un DataTemplate
- 25. Référencement de MasterPage à partir de WebUserControl inclus dans cette MasterPage
- 26. Contrôle utilisateur ASP.NET - Accès à l'objet Page principal dans AddedControl
- 27. accès utilisateur auth contrôle Django à des instances d'objets spécifiques
- 28. Lier la propriété de contrôle WinForm à une propriété sur le contrôle utilisateur à l'aide de INotifyPropertyChanged
- 29. Référence Contrôle principal à partir du contrôle utilisateur
- 30. Impossible d'accéder à la page principale du contrôle utilisateur
Il n'y a pas [ 'directive MasterType'] (http://msdn.microsoft.com/en-us/library/ms228274.aspx) pour un contrôle utilisateur, je suppose? –
Le type ou l'espace de noms SiterMaster est introuvable – Johan
@Johan, oui, il s'agit du type réel de votre page maître. Par exemple si vous avez un Site.Master alors utilisez SiteMaster, si vous avez FooBar.Matser puis utilisez FooBarMaster, ... –