Home   Artículos   Recursos   Foros   
Artíclos recientes publicados en Latindevelopers:

Visual C++: NSDoubleEdit: Un control para el manejo de números decimales en Visual C++.
Visual C++: Implementando una Calculadora en Visual C++
Visual C++: CCommandLine: Una clase para el uso de la linea de comando
Visual C++: Una clase para el manejo del Registro


3 Maneras de acceder a mi MasterPage (.NET)

Foro sobre el nuevo lenguaje C# conocido tambien como CSharp o C Numeral

Moderador: Bestprogramado

3 Maneras de acceder a mi MasterPage (.NET)

Notapor Laopecillo! el Mar Nov 13, 2007 10:28 am

Accder y Fijar valores de Master Pages desde otras paginas
=======================================================================

A continuacion les presento 3 formas distintas que en mi experiencia me han funcionado y espero igual les sea util a quellos que lean esto.
Cualquier duda o no funcionalidad agradezco informarme, tal vezos pudiera haber obviado algun detalle y asi poder corregirlo. Gracias Amigos y Saludos !!

Partamos de lo siguiente:

supongamos que contamos con un MasterPage lamado "MyMainMaster.master", es bien simple pues solo buscamos enfocar la funcioanalidad.

tendremos los archivos a los cuales nos referiremos como Originales asi de la sigueinte manera:

------------------------------ MyMainMaster.cs --------------------------------
Código: Seleccionar todo
public  partial class MyMainMaster : System.Web.UI.MasterPage{

  protected void page_Load(object sender, EventArgs e)
  {
       

  }
}

-------------------------------------------------------------------------------


---------------------------- MyMainMaster.master ------------------------------
Código: Seleccionar todo
<%@ Master Language="C#" AutoEventWireup="true" CodeFile="MyMainMaster.master.cs" Inherits="MyMainMaster" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
    <title>Ejemplos de Como acceder las propiedades de los objetos en un Masterpage</title>
</head>
<body>
varh1 : <h1 id="varh1" runat="server">Texto por defecto</h1>
        <form id="form1" runat="server">

     <div>
            label1: <asp:Label id="label1" text="" runat="server"></asp:Label>
</div>

<div>
        <asp:contentplaceholder id="ContentPlaceHolder1" runat="server">

        </asp:contentplaceholder>
</div>

</form>
</body>

-------------------------------------------------------------------------------

Solo les muestro la parte de codigo que se vera afectada,obviamente pudieran existir otros fragmentos de codigos en sus archivos al momeno de desarrollar y poner en practica esto, solo lo menciono para que lo tengan presente.




Forma 1:


------------------------------ MyMainMaster.cs --------------------------------
Código: Seleccionar todo
public  partial class MyMainMaster : System.Web.UI.MasterPage{

    private string m_varh1;
    private string m_label1;

    public string valuevarh1
    {
        get
        {
            return m_varh1;
        }
        set
        {
            m_varh1 = value;
            varh1.InnerText = value;
        }
    }


     public string valuelabel1
    {
        get
        {
            return m_label1;
        }
        set
        {
            m_label1 = value;
            label1.InnerText = value;
        }
    }


  protected void page_Load(object sender, EventArgs e)
  {
       

  }
}

-------------------------------------------------------------------------------

Puede agregrar una (no ambas) de las siguioentes directivas despues de la directiva <@Page...>
estas directivas mas que todo crean el ambito para la variables de clase de la clase Master que se especifique


<%@ MasterType TypeName="MyMainMaster" %>

<%@ MasterType VirtualPath="~/MyMainMaster.master" %>



---------------------------- test.aspx ------------------------------
Código: Seleccionar todo
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="test.aspx.cs" ErrorPage="Errors45.aspx" Inherits="test" MasterPageFile="~/MyMainMaster.master"  %>

<%@ MasterType TypeName="MyMainMaster" %>

<asp:Content runat="server" ContentPlaceHolderID="ContentPlaceHolder1">

</asp:Content>

-------------------------------------------------------------------------------


esto nos ayudara para poder acceder a la variable en código asi:
---------------------------- test.aspx.cs ------------------------------
Código: Seleccionar todo
...

protected void Page_Load(object sender, EventArgs e)   
    {

this.Master.valuelabel1 = "Label1 alterado desde test.aspx";

this.Master.valuevarh1 = "varh1 alterado desde test.aspx";

  }

...

-------------------------------------------------------------------------------


Forma 2:
mantenemos el archivo MyMainMaster.cs igual que en la forma 1

en lugar de agregar directivas en el archivo test.aspx :
<%@ MasterType TypeName="MyMainMaster" %> o <%@ MasterType VirtualPath="~/MyMainMaster.master" %>
(ojo las directivas no se agregan hago mención para que se entienda y note la diferencia frente a la forma 1 )

utilizamos el casting asi:


---------------------------- test.aspx.cs ------------------------------

Código: Seleccionar todo
...

protected void Page_Load(object sender, EventArgs e)   
    {

(("MyMainMaster")this.Master).valuelabel1 = "Label1 alterado desde test.aspx";

(("MyMainMaster")this.Master).valuevarh1 = "varh1 alterado desde test.aspx";

  }

...

-------------------------------------------------------------------------------


Forma 3:

usando los archivos en su estado inicial (los originales)

Obtendremos los valores del MyMainMaster asi:


---------------------------- test.aspx.cs ------------------------------
Código: Seleccionar todo
...

protected void Page_Load(object sender, EventArgs e)   
    {

  Label l1= new Label();
l1 = (Label)Master.FindControl("label1");
            if (l1 != null)
                l1.Text = "labe1 alterado desde test.aspx";
       
HtmlGenericControl h1valor = new HtmlGenericControl();
        h1valor = (HtmlGenericControl)Master.FindControl("varh1");
        h1valor.InnerText = "varh1 alterado desde test.aspx";

  }

...


-------------------------------------------------------------------------------
Laopecillo!
Novato
Novato
 
Mensajes: 15
Registrado: Mar Nov 13, 2007 10:14 am
Ubicación: Panama

Re: 3 Maneras de acceder a mi MasterPage (.NET)

Notapor waltico el Mar Ene 29, 2008 9:32 pm

Gracias por compartir la información. :o
by: Oscar Walther Huanca Torres
Web: http://waltico.wordpress.com
E-Mail: walticogt + yahoo.com
Avatar de Usuario
waltico
Usuario Muy Activo
Usuario Muy Activo
 
Mensajes: 138
Registrado: Sab Jun 21, 2003 4:04 pm
Ubicación: Puno - Perú


Volver a C# (CSharp)

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados

cron