¿Cómo puedo acceder a una propiedad definida en mi página maestra desde el código subyacente en un control de usuario?Acceso a la propiedad de la página maestra desde un control de usuario
Respuesta
Page.Master expone la página maestra subyacente, en su caso.
var master = (this.Page.Master as SiteMaster);
if (master != null)
{
var myProperty = master.MyProperty;
}
this.NamingContainer.Page.Master.Property;
En caso de que su página maestra se fija que puede encontrar el control y la propiedad como esta:
MasterPageName mp =(MasterPageName) Page.Master;
//find a control
Response.Write((mp.FindControl("txtmaster") as TextBox).Text);
//find a property
Response.Write(mp.MyProperty.Text);
// en MasterPageName.cs
public TextBox MyProperty
{
get { return txtmaster; }
}
// en MasterPageName.Master
<asp:TextBox runat="server" ID="txtmaster"></asp:TextBox>
-1: no dijo nada sobre el acceso a un control –
Si el MasterPage es así,
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";
}
}
}
Luego, desde el control de usuario, puede acceder a "MyName", de esta manera,
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"
Por mucho que he entendido:
- hay una página maestra (MasterPage.master)
- una página web (Default.aspx) que está usando MasterPage.
- la página web tiene un control de usuario.
- Ahora quiere acceder a una propiedad de una página maestra desde este control de usuario.
permite decir en el MasterPage hay una propiedad llamada nombre como
public string Name{ get{return "ABC";} }
Ahora desea acceder a esta propiedad desde el control de usuario.
Para ello, primero tendrá que registrar la página maestra en el control de usuario de esta manera.
<%@ Register TagPrefix="mp" TagName="MyMP" Src="~/MasterPage.master" %>
Ahora usted primero tendrá que obtener la referencia de la página de este control de usuario está residiendo en y luego la página maestra de esa página. El código será así.
System.Web.UI.Page page = (System.Web.UI.Page)this.Page;
MasterPage1 mp1 = (MasterPage1)page.Master;
lbl1.Text= mp1.Name;
- 1. Acceso a User.Identity desde la página maestra
- 2. Obtener acceso a una página maestra personalizada desde un control de usuario
- 3. ¿Cómo acceder a un control de usuario en una página maestra desde una página de contenido?
- 4. ASP.NET - Acceso a los elementos de la página maestra desde la página de contenido
- 5. Acceder al método público de la página maestra desde el control de usuario/clase/página
- 6. ¿Cómo hacer referencia a una página maestra desde un control de usuario?
- 7. Acceso a las principales propiedades de la página maestra en un código de página maestra anidado detrás de
- 8. Acceder a la propiedad de la página principal desde el Control de usuario
- 9. Acceso a las propiedades de la página maestra desde las páginas secundarias en ASP.net VB
- 10. Acceso elemento del cuerpo de la página de contenido a través de una página maestra anidada
- 11. Acceso a las variables de la página maestra en la página secundaria en asp.net
- 12. Cómo llamar a la función javascript de la página secundaria desde la página maestra javascript
- 13. Agregar control de usuario a la página de pestaña
- 14. Cómo llamar a la función de página de contenido desde la página maestra
- 15. Encontrar un control en una página con una página maestra
- 16. Validar un control de usuario ASP.NET desde su página principal
- 17. Cómo exponer la propiedad Text de un control de usuario?
- 18. Cómo mostrar la propiedad de la página maestra en una página en Umbraco
- 19. valor de la etiqueta de la página maestra no actualizada página de contenido de la forma
- 20. Método de llamada en la página maestra
- 21. ¿Cómo vincular la propiedad de un control a la propiedad de otro control?
- 22. Silverlight: cómo navegar desde un control de usuario a una página normal?
- 23. Cómo controlar elementos en una página maestra de asp.net desde la página secundaria
- 24. elementos de Acceso de un control de usuario
- 25. ¿Cómo configurar la página maestra dinámicamente?
- 26. Ruta relativa en la página maestra de la etiqueta img
- 27. Acceso a la interfaz de usuario en un hilo
- 28. Acceso al control de la interfaz de usuario desde BackgroundWorker Thread
- 29. ¿Cómo acceder al elemento .Net en la página maestra desde una página de contenido?
- 30. ¿Puedo modificar la sección <head/> de una Página en .NET desde un Control de usuario sin runat = "server"?
No hay [ 'Directiva MasterType'] (http://msdn.microsoft.com/en-us/library/ms228274.aspx) para un control de usuario, supongo? –
No se pudo encontrar el tipo o espacio de nombre SiterMaster – Johan
@Johan, sí, este es el tipo real de su página maestra. Por ejemplo, si tiene un Site.Master, utilice SiteMaster, si tiene FooBar.Matser y luego usa FooBarMaster, ... –