Pasando variables entre paginas web ASP.NET usando Cross Page Postback

Existen varias formas de pasar variables entre formularios web, como por ejemplo haciendo uso de la URL, o usando sesiones. Cada una de estas caracteristicas tiene sus ventajaa y desventajas.

Ahora que nueva característica trajo ASP.NET 2.0?, Cross Page Postback. Pero que hace esta característica, veamos el siguiente gráfico y después damos una breve explicación [URL01]:

Antes con ASP.NET 1.X, solo se podía hacer PostBack a la misma página, es decir cuando pulsaba cualquier botón esta se dirigía hacia si misma, ahora en ASP.NET 2.0, se puede hacer Cross Page Postback, es decir ya no limitar que mi página solo pueda ser enviada a si misma, sino que puedo enviar el contenido a cualquier otra página. Las aplicaciones que se le puede dar a esta característica son varias, veamos algunas de sus ventajas:

  • Todo la información de la página actual estará disponible en la página destino.
  • Permite que la página destino acceda a las propiedades públicas de la página origen.
  • Debido a las ventajas anteriores, permite el paso de variables entre páginas.

Pero manos a la obra, como hacemos esto?, pues aquí uno de los escenarios en los cuáles se podría aplicar. Se trata de un formulario de confirmación de registro, para esto necesitamos el nombre, y los datos ingresados en la página origen, para asi mostrarla en la página destino:

Página Origen (wf_registro.aspx):

Página Destino (wf_confirmacion.aspx):

Ahora cuáles son los pasos para lograr esto?:

  • En la página wf_registro.aspx y en el botón de envio btnEnviar, modificamos la siguiente propiedad PostBackUrl (en la ventana de propiedades o desde la vista source de la página):

PostBackUrl="~/wf_confirmacion.aspx"

="~/wf_confirmacion.aspx"

  • Ahora en el evento Load de la página wf_confirmacion.aspx, agregamos el siguiente código [Cod01]:

protected void Page_Load(object sender, EventArgs e)
{
 
string nombre;
 
  TextBox
txtNombre = 
     
(
TextBox)Page.PreviousPage.FindControl("txtNombre");

nombre = txtNombre.Text;

lblConfirmacion.Text = 
  
string.Format("{0} gracias por ingresar su informacion <br/>" +
               
"USTED HA SIDO REGISTRADO", nombre);
}

protected void Page_Load(object sender, EventArgs e)
{
 
string nombre;
 
  TextBox
txtNombre = 
     
(
TextBox)Page.PreviousPage.FindControl("txtNombre");

nombre = txtNombre.Text;

lblConfirmacion.Text = 
  
string.Format("{0} gracias por ingresar su informacion <br/>" +
               
"USTED HA SIDO REGISTRADO", nombre);
}

  • Corremos y todo OK, pero creen que ahí queda todo? , pues esta funcionando, pero hay que agregar algunas validaciones.
  • Qué pasaría si accedemos directamente a wf_confirmacion.aspx, pues que daría un error, para evitar esto agregamos nuestro [Cod01], el que esta dentro del load, y lo ponemos dentro de este if:

if (Page.PreviousPage != null)
{ … }

if (Page.PreviousPage != null)
{ … }

Ahora como podemos mejorar el acceso a la página origen?, si bien el método FindControl es útil, puede no darte precisión al colocar mal el nombre. Para evitar estos incovenientes podemos hacer uso de Propiedades Públicas. Nota: Tratar de colocar solo la información necesaria en variables públicas, para reducir la cantidad de información disponible para usuarios potencialmente malintencionados .

  • Para poder acceder a las propiedades de la página origen se debe establecer una referencia "strongly type" a ella. Hay dos formas de hacerlo [URL04], pero nosotros vamos a hacer uso de la directiva @PreviousPageType, para nuestro cometido, y agregamos el siguiente código a nuestra página wf_confirmacion.aspx:

<%@ PreviousPageType VirtualPath="~/wf_registro.aspx" %>

@ PreviousPageType VirtualPath="~/wf_registro.aspx" %>

  • Agregamos la siguiente propiedad a nuestra clase wf_registro.aspx.cs:

public string NombreRegistro {
 
get {
    
return txtNombre.Text;
 
}
}

public string NombreRegistro {
 
get {
    
return txtNombre.Text;
 
}
}

  • Ahora el nuevo Load de la página wf_confirmacion.aspx, quedaría así:

protected void Page_Load(object sender, EventArgs e)
{
 
if (Page.PreviousPage != null)
 
{
   
string nombre =
     
PreviousPage.NombreRegistro;

    lblConfirmacion.Text =
     
string.Format("{0} gracias por registrarse <br/>" +
                  
"USTED HA SIDO REGISTRADO", nombre);
 
}
}

protected void Page_Load(object sender, EventArgs e)
{
 
if (Page.PreviousPage != null)
 
{
   
string nombre =
     
PreviousPage.NombreRegistro;

    lblConfirmacion.Text =
     
string.Format("{0} gracias por registrarse <br/>" +
                  
"USTED HA SIDO REGISTRADO", nombre);
 
}
}

  • Se nota la diferencia .

Ahora qué sucede si es que yo voy a llamar al página de confirmación de diversas páginas?, es decir no quiero atar la propiedad pública a una página. Pues para eso haremos uso del patrón adapter [URL03]:

  • Agregaremos esta interface a la carpeta App_Code:


using System;

public interface IRegistroForm
{
 
string NombreRegistro
 
get}
}

System;

public interface IRegistroForm
{
 
string NombreRegistro
 
get}
}

  • Ahora hacemos que nuestra clase wf_Registro implemente a IRegistreForm, además de heredar de System.Web.UI.Page:

wf_registro : System.Web.UI.Page, IRegistroForm

: System.Web.UI.Page, IRegistroForm

  • Ahora podemos remover la directiva @PreviousPageType, de la página wf_confirmacion.aspx, y actualizamos el código dentro de nuestro Load:

protected void Page_Load(object sender, EventArgs e)
{
 
if (Page.PreviousPage != null)
 
{
   
IRegistroForm form = PreviousPage as IRegistroForm;

    if (form != null)
   
{
     
string nombre =
            
form.NombreRegistro;

      lblConfirmacion.Text =
         
string.Format("{0} gracias por registrarse <br/>" +
                     
"USTED HA SIDO REGISTRADO", nombre);
   
}
 
}
}

protected void Page_Load(object sender, EventArgs e)
{
 
if (Page.PreviousPage != null)
 
{
   
IRegistroForm form = PreviousPage as IRegistroForm;

    if (form != null)
   
{
     
string nombre =
            
form.NombreRegistro;

      lblConfirmacion.Text =
         
string.Format("{0} gracias por registrarse <br/>" +
                     
"USTED HA SIDO REGISTRADO", nombre);
   
}
 
}
}

Espero que haya quedado claro el post/artículo, si tienen alguna pregunta, o algo que agregar, me dejan un comentario. En nuestro último código deberíamos hacer uso de la propiedad PreviousPage.IsCrossPagePostBack y de PreviousPage.IsValid, para una mejor validación, en las referencias de abajo podremos encontrar más detalles sobre estas propiedad, queda como tarea .

P.D.: Adjunto el archivo del post/artículo.

Referencias:

  • [URL01]: Secretos internos de ASP.NET – <link>
  • [URL02]: Redirigir a los usuarios a otra página – <link>
  • [URL03]: Design Considerations for Cross Page Post Backs in ASP.NET 2.0 – <link>
  • [URL04]: Envío entre páginas en las páginas Web ASP.NET – <link>

Saludos,

Post cruzado desde starrillo blog

81 comentarios en “Pasando variables entre paginas web ASP.NET usando Cross Page Postback”

  1. Holas!

    Me puedes enviar más detallado tu escenario?, quieres decir que has definido algo dentro de un textbox en un master.page?, y quieres recuperar eso?

    Comento tu escenario (caso), y que solución le has estado dando.

    Saludos,

  2. Hago todo lo que comentas pero, aún así, me da el siguiente error:

    Compiler Error Message: CS0103: The name ‘CodInstalador’ does not exist in the current context

    Source Error:

    Line 19: get
    Line 20: {
    Line 21: return CodInstalador.Text;
    Line 22: }
    Line 23: }

    donde CodInstalador corresponde al Id del TextBox para la inserción de un código.
    ¿Sabes dónde estaría el problema?

  3. en mi pagina tengo el siguiente problema, tengo un frame de jerarquia anidada, en los cuales los 2 extremos ejecutan un reload al marco principal, este evento me provoca un mensaje que dice lo sigt:
    “para mostrar de nuevo esta pagina web,el Internet Explorer tiene que volver a enviar la informacion que ya envio anteriormente. Si estuviera realizando una compra haga click en cancelar para evitar que la transaccion se realice dos veces, de otra forma haga click en reintentar para volver a mostrar la pagina web”

    lo que quiero es obligarlo a pasar por el load del webform principal de nuevo para que detecte un cambio que realiza a una variable desde los otros webforms, el reload lo logra pero me muestra el mensaje. Como puedo eliminar el mensaje.

  4. A mi me pasa como a jj. Tengo una plantilla donde hay un frame. El caso es que yo si recupero los valores (Page.PreviousPage.Form.FindControl(“form1”)… y así anidado)pero siempre recupero los mismos, es decir, si cambio el valor del textbox no me da el valor modificado sino el que tenia antes de modificar.

  5. bueno mi duda es la siguiente, tengo una pagina a la cual la informacion q desplega es alimentada por otras 3 paginas (q son llamadas desde la principal, en escencia son 3 paginas de busquedas q me devuelven codigo a la página principal). Estoy utilizando crosspage la cosa es q cuando quiero agregar tres líneas de lossiguiente:

    < %@ PreviousPageType VirtualPath="~/wf_registro.aspx" %>

    solo agarra la primera y las otras 2 no. Quisiera saver como le tengo q hacer para q sirva???

  6. El problema que tengo en mi página de destino es que cuando rescato los valores con PreviousPage.propiedad no funciona ajax en el primer postback de la página, alguien sabe porqué ese problema?

  7. al usar Cross Page Postback quiero que me despliegue una masterpage en caso de que los datos de registro sean válidos, y en caso contrario regresar a la pagina de Registro, cómo puedo hacerlo ??? La primera parte ya la tengo hecha, sólo me falta regresar a la página de rEgistro en caso de que los datos no sean validos. la validez de los datos los checo en una DB.

  8. Buen dia primeramente buen tema

    estoy empezando a usar ASP.NET y tengo varias dudas con respecto a la migracion de mi web de asp a .net
    espero me puedan ayudar con esta duda
    Como puedo realizar en VWD2005 lo siguiente:
    –como enlazar combobox o listas con bases de datos,
    –una vez enlazado el primer combo este llamado empresa quiero crear otro llamado sucursal, que dependiendo de la empresa presentara un gpo de sucursales ,
    –nuevamente ya seleccionanado la empresa y sucursal este tiene otro enlace dependiente llamado producto, otro mas llamado periodo depende directamente de la empresa seleccionada. y uno ultimo llamado tipo de estadistica donde depende de la sucursal seleccionada
    pero ahi no acaba todo,al seleccionar la empresa x esta muestra una lista de suscursales donde la ultima seleccion es todos las sucusales al realizar el posback ademas de llebarse los datos a otra esta pregustara si selecciono alguna de las sucursales se dirija a una pagina1.aspx , pero si la opcion selccionada es Todas las sucursales esta se ira con los datos seleccionados a pagina2.aspx
    espero alguien me pueda orientar Gracias

  9. Hola..muy buena la página…soy nuevo en esto de las tecnologías .net

    estoy usando Cross posting para pasar variables de una página a otra y me ha funcionado pero la duda es si puedo pasar esas variables a lo largo de todo el proyecto, es decir las variables accesibles desde cualquier página. Este es el código que estoy usando…GRACIAS !!!!!!!!

    //PARA RESCATAR DATOS DE LA PÁG ANTERIOR

    //PREGUNTA SI LA PAG QUE SE HA LLAMADO HA USADO CROSS POSTING
    if (Page.PreviousPage != null && Page.PreviousPage.IsCrossPagePostBack)
    {
    // BUSCA EL TEXTO INGRESADO EN LA PÁG ANTERIOR
    TextBox tx_rut = (TextBox)Page.PreviousPage.FindControl(“tx_rut”);
    TextBox tx_nombre = (TextBox)Page.PreviousPage.FindControl(“tx_nombre”);

    lb_rut.Text = tx_rut.Text;

    // EN CASO DE QUE EL USUARIO NO HAYA INGRESADO NOMBRE EN EL INDEX
    if (tx_nombre == null)
    {
    lb_nombre.Text = “”;
    }
    else
    {
    lb_nombre.Text = tx_nombre.Text;
    }
    }

  10. todo bien hasta que en la pagina destino ahgrege un txtbox para pasar la información del label y del txtbox a otra pagina llamada destino2 la que debiera presentar tres label con los datos que anteriores, lo ejecute y me reclama un error de referencia de objeto, alomejor debe ser por el txtbox que puse, sabes como solucionar esto???…

  11. Hi duda!

    Sólo podemos agregar una directiva: < %@ PreviousPageType VirtualPath="~/wf_registro.aspx" %>. Ya que en el intellsense, sólo tenemos una propiedad Page.PreviusPage, es por eso que no la puedes usar para las otras páginas. Pero si puedes hacer que varias páginas redireccionen a tu página principal, pero sólo puedes tener una página a la cual puedas acceder con intellsense usando PreviousPageType.

    P.D.: Cuando envién dudas, envién sus escenarios, así se puede dar un poco más de ayuda sabiendo que desean hacer, y no sólo con la pregunta técnica.

    Saludos,

  12. El post me parece muy interesante.

    Alguien pregunto sobre como enlazar dropdownlist a una bdd.

    Primera Clase q Establece la Conexion a ala BDD
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;
    using System.Data.SqlClient;

    ///

    /// Summary description for GenericDao
    ///

    public class GenericDao
    {
    public static string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings[“QryConexion”].ConnectionString.ToString();
    ///

    /// Retorna Un DataTable
    ///

    /// ///
    public static DataTable getDataTable(string query)
    {
    SqlDataAdapter adapter = new SqlDataAdapter(query, connectionString);
    DataSet ds = new DataSet();
    adapter.Fill(ds);
    return ds.Tables[0];
    }
    public static void executeNonQuery(string query)
    {
    SqlConnection conn = new SqlConnection(connectionString);
    conn.Open();
    try
    {
    SqlCommand cmd = new SqlCommand(query, conn);
    cmd.ExecuteNonQuery();
    }
    catch (Exception e)
    {
    HttpContext.Current.Trace.Warn(e.Message + “Problemas Generic” + query.ToString());
    }

    }
    }

    /////////////////////Segunda Clase q Accede a la informcion y retorna un Datatable.

    using System;
    using System.Data;
    using System.Configuration;
    using System.Web;
    using System.Web.Security;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.WebControls.WebParts;
    using System.Web.UI.HtmlControls;

    ///

    /// Clase Catalogos Hereda de GenericDao
    ///

    public class Catalogos : GenericDao
    {
    ///

    /// Busca de el Catalogo de Usuarios para Agregar al DropdownList
    ///

    ///
    public DataTable BuscaGrupos_x_Usuario()
    {
    string query = ” select id_usuario,nomsubdirector from dbo.FCT_USUARIO union select ‘-1′,’— Selecciona —‘ from dbo.FCT_USUARIO”;
    return getDataTable(query);
    }
    }

    ////Del lado de la paguina es sencillo

    void CargaCatalogos()
    {
    Catalogos Usuario = new Catalogos();
    ddlUsuario.DataSource = Usuario.BuscaGrupos_x_Usuario();
    ddlUsuario.DataValueField = “id_usuario”;
    ddlUsuario.DataTextField = “nomsubdirector”;
    ddlUsuario.DataBind();
    }
    Se ejecuta la llamada a este metodo y listo se carga tu dropdownlist

  13. excelente articulo, felicitaciones, que envidia no tener el mismo dominio que tu, pero estoy recien empezando en esto y me ha servido mucho tu articulo

    gracias de verdad

    nada que decir

    adios

  14. Buenas,

    Yo he hecho un pagina que direcciona otra con este codigo

    de esta forma iba bien pero deseaba que se me abriera en nueva entonces añadí onclientclick

    Y ya no funciona nada, ¿alguien sabe por que ?

  15. Hola Felipe!

    En cadena te refieres a que quieres recuperar en la tercera página los valores de la primera página?. De manera normal no creo que se pueda, lo que puedes hacer es almacenar los valores que quieres recuperar en la tercera página, en la segunda usando controles HiddenField. Igual creo que es mucho flujo ya tres páginas seguidas. La página también se recarga.

    Recuerda que siempre puedes traer los valores de la base de datos. Digamos que en la página 01, insertar a la BD un registro. En la tercera podrías recuperar el registro, solamente conociendo el Id del registro insertado en la página 01.

    Saludos,

  16. Claudio, que framework de AJAX estás usando?, que especificamente no funciona?, no debería pasar esto…

    A ver Mary, si estas en la página de registro, y los datos no son válidos, no deberías salir de la página de registro. Recuerda que puedes agregar controles de validación en la página.

    Rafael, tu pregunta escapa al tema del post, pero lo que buscas es combos anidados, debe haber ejemplos en google :).

    Saludos,

  17. Me parece muy buen tema y muy buena tu solucion, pero quisiera ver si me puedes ayudar tengo un problema con la propiedad PostBackUrl de ASP Net 2.0. Hice mi aplicacion sencilla que tiene dos paginas aspx la pagina origen tiene un boton con la propiedad PostBackUrl asignada a la pagina de destino, ya la corri en mi maquina que tiene un ambiente de desarrollo instalado, VS .Net 2005 y funciona bien.

    Pero llego la desilusion la publique en un servidor IIE y no funciona el PostBackUrl le doy click al boton y solo se queda ahi sin hacer nada aparentemente solo recarga la pagina de origen y no hace el cambio a la pagina destino.

    Gracias por tu ayuda

  18. en mi necesidad por crear un filtro para reportes (muy grande porcierto).. decidi abrir la ventana del reporte en una nueva ventana
    (para no tener que capturar todo el filtro cada vez que generara un reporte)
    por lo cual use cross page postback dejando asi mi boton de submit

    todo estaba perfectamente hasta que tube la necesidad de incluir otros controles en el filtro que hacian postback como el calendario… ahora cada vez que selecciono una fecha me habre la vetana del reporte.. necesito que solo el boton abra la nueva ventana con el reporte alguien sabe como hacerlo? les agradeceria mucho su ayuda mi correo es alejandronm@live.com.mx

  19. Alejandro,me pasa lo mismo que a ti,una vez que vuelvo de la pagina apuntada en el postbackurl cualquier evento que lanze un postback me vuelve a mandar a la direccion del postbackurl….

    Si alguien sabe que esta ocurriendo le agradeceria mucho su ayuda.

    Un saludo.

  20. alguien me puede ayudar … es una declaracion de variable que no se como se hace …
    miren tengo una declaracion de variable afuera de las funciones…

  21. Bueno Developer si ud., esta utilizando Master Page y esta manejando el findControl, desde luego que no lo va encontrar porque ya no trabaja con el nombre del asp sino html. Osea si ID=’content$place$holder$texbox1′

  22. Muy buen articulo me ha sido de gran ayuda… sin embargo me queda una duda, no he podido hacer el cross page postback utilizando la interface:

    Imports System
    Public Interface MyInterface

    Property strText1() As String
    Property strText2() As String

    End Interface

    la implemento en la pagina de la cual quiero postear sus valores, pero cuando los quiero leer en la siguiente, las propiedades traen valor Nothing, en esta segunda pagina tengo este codigo:

    Dim PaginaAnterior As MyInterface
    If Not Page.PreviousPage Is Nothing Then
    PaginaAnterior = TryCast (Page.PreviousPage,MyInterface)
    Me.Label1.Text = PaginaAnterior.strText1
    Me.Label2.Text = PaginaAnterior.strText2
    End If

    Alguien podria podria decir si estoy haciendo algo mal? o algo que me haga falta?… de antemano muchas gracias por su ayuda.

  23. @rommel, si quieres hacer variables disponibles esta es la mejor opción para usar. Puedes usar el web.config para esto, dependiendo del tipo de variable, por ejemplo si es por usuario puedes variables de Session, o usar Profiles.

    @Elvis, siempre hay que verificar bien los nombres. Y hacer comparaciones txtControl != null, para no tener este problema.

    @Vicente Garcia Zuñiga, Gracias. Aunque sería más fácil si usamos ObjectdataSource, pero ese es otro tema.

    @omar, con la práctica podemos dominar cualquier tema que queramos.

    @lunes, 11 de febrero de 2008 14:05, es muy extranio que eso suceda. Pero podría ser si tienes otros script en tu página, depende del error que muestra

    @ANGEL, gracias por tus comentarios, pero si puedes a la próxima poner por que no te gusto, sería excelente.

    @Alfonso, verifica que la versión de ASP.NEt en IIS sea ASP.NEt 2.0.

    @Alejandro, la mejor solución sería usar QueryString para pasar variables, no te compliques.

    @edu, si tu escenario es el mismo que Alejandro, la misma respuesta, no se compliquen, usar QueryString para pasar variables no es malo.

    @VitonX, me parece que te estás complicando con el tema de funciones, revisa la carpeta App_Code de ASp.NET.

    @FranzDev, gracias por la puntualización.

    @Lucas, tu página source debería implementar la interface

    @Guevara ernesto, te pasaste con el Off-Topic…

    Saludos,

  24. Un Fvaor
    en un formulario de rutas.aspx
    tengo un boton que llama a un popup(origen.aspx) donde de enuentra dos cascadas uno de deparatmentos y otra de provincia y un boton en el cual al hacer click envia solo la provincia o cualquie texto al webform ruta.aspx si tener que redireccionar poqr eso vuelva abrir la pagina en otra vetana
    gracias por su respuesta MR. Sergio

  25. Muy bueno el articulo, me ha funcionado y me funciona a la perfección pero como ejemplo de prueba, comento esto por que actualmente estoy trabajando con Master Page y no me funciona todo lo diseñado esta con Master Page y me estoy arrepintiendo por que hay varias cosas que no puedo hacer con en este caso pasar variables alguien podria ayudarme como hacer lo mismo pero con Master Pege, otra pregunta como funcionaria con ventanas emergentes en el cual activando la ventana emergente como ayuda pueda devolver valores a la ventana que lo envio: clickear en un boton de la pagina principal, activar ventana con una lista de articulos y seleccionar un articulo de la ventana emergente y devolverlo a la ventana principal. Ojala entiendan lo que necesito, est demas decir que recien enpieso con esto, derepente para unos estos es comun pero para mi estodo una odicea. Gracias ante todo.

  26. Estoy implementando el modelo de pasar información entre páginas web por medio de una interfase.
    El problema esta en el momento de implementar la interfase en la ventana origen para usar las propiedades. Al tratar de ejecutar me presenta el siguiente error:

    Error 1 Sólo se pueden utilizar las expresiones de objeto assignment, call, increment, decrement y new como instrucción

    Espero me pudan orientar. Gracias

  27. Cuando recupero los valores en la pagina destino, la url, sigue diciendo que estoy en la pagina anterior aunque el contenido si es el de la pagina destino porque???

  28. estoy pasando por codigo una variable de session por la url:
    lbCodigo.PostBackUrl = “cssmaTodosPeligros.aspx?codObra=” + codObra;

    lo que me quiero es que el destino se abra en una pagina diferente, se que debo usar “_target”, pero no he podido conseguirlo, me pueden ayudar pleaseeeeee!!!

  29. DISCULPEN SOY NUEVO EN ESTO PERO TENGO UNA DUDA COMO SE PUEDE SUBIE LOS DATOS DE UN DATALIST A UNAS CAJAS DE TEXTO ES QUE LLA INTENTE D TODO PERO NO ME FUNCIONAN?????????? PORFA NESESITO UNA RESPUESTA C LOS AGRADESERIA

  30. hola alguien me podría auxiliar tengo este código hecho en C# q sirve para descargar un archivo ptt desd una carpeta que tengo guardada en esta ruta de mi disco C:inetpubwwwroot i ahora deseo que desde una aplicacion web y al dar click en el link se pueda descargar el archivo deseado como debo poner el enlace en mi aplicación me urge

    using System.Web.Caching;
    //using System.Xml.Linq;
    using System.Diagnostics;
    using System.Web.Security;
    using System.IO;
    using System.Text;
    using Microsoft.VisualBasic;
    using System.Web.UI.HtmlControls;
    using System.Web.SessionState;
    using System.Text.RegularExpressions;
    using System.Web.Profile;
    using System.Web.UI.WebControls.WebParts;
    using System.Collections.Specialized;
    using Microsoft;
    using Microsoft.CSharp;
    using System.CodeDom.Compiler;
    using System.Net;

    public partial class Descargar : System.Web.UI.Page
    {

    protected void Page_Load(object sender, EventArgs e)
    {

    string path = Server.MapPath(“SERGIO.pptx”);
    System.IO.FileInfo file = new System.IO.FileInfo(path); //– if the file exists on the server

    if (file.Exists) //set appropriate headers
    {

    // write file to browser
    Response.WriteFile(file.FullName);

    Response.End();
    }
    else
    {
    // if file does not exist
    Response.Write(“This file does not exist.”);
    }
    }

    }

  31. Si la página origen xx.aspx tiene una master page. dentro de xx.aspx.cs y tengo un método público DeveolverValor, quisiera saber cómo hacer para acceder a ese método desde la página a la cual se enlaza el Postbacks? A los contenedores puedo acceder con el siguiente código, pero a los métodos no puedo acceder. De qué forma puedo acceder?
    Código:
    Control placeHolder =
    (ContentPlaceHolder)Page.PreviousPage.Controls[0].FindControl(“ContentPlaceHolder1”);
    TextBox SourceTextBox =
    (TextBox)placeHolder.FindControl(“caja1”);

    Muchas gracias. Muy bueno tu artículo.

  32. Hola…. Antes que nada agradezco que compartas tus conocimientos con quienes queremos aprender. Tengo la siguiente duda.
    Cuando utilizas esta forma de pasar data de una pagina a otra la carga de traspasar la data representa un inpacto en el servidor o en el usuario.

  33. Gypuesoeeshyhch [url=http://natwestonlinebanking.reviewsz.net]natwest internet banking[/url] palghmmas itncpmaaunbv [url=http://cibconlinebanking.reviewsz.net]cibc bank online[/url] ikmigbincolloopj rbfeaesrritas [url=http://bmoonlinebanking.reviewsz.net]bmo online banking[/url] iTebbuinuebss

  34. Read online (computer problems) positive feedback on your resource. Do not even believe it, but now convinced personally. It turns out I was not deceived.

  35. consulta, para asp.net mvc que opcion recomendarias para el sigiuente escenario:
    – lista de productos con filtros para manipulacion de datos.
    – el usuario puede filtrar mediante multiples opciones.
    – las opciones seleccionadas por el usuario en cada seleccion se mantienen para la sigiuente pagina agregando la ultima seleccion a las variables pasadas.

    muchas gracias,
    sebastian

  36. consulta, para asp.net mvc que opcion recomendarias para el sigiuente escenario:

    – lista de productos con filtros para manipulacion de datos.

    – el usuario puede filtrar mediante multiples opciones.

    – las opciones seleccionadas por el usuario en cada seleccion se mantienen para la sigiuente pagina agregando la ultima seleccion a las variables pasadas.

    muchas gracias,

    sebastian

  37. Hello, que tal con el siguiente escenario…! Tengo las dos paginas, pero estan dentro de una master page, como seria el codigo para poder pasar datos de una a otra…! No me explicaba porque el codigo expuesto en este post no me funcionaba, pero en los comentarios lei que era porque estaba en los masterpage, entonces, como hacer para que me funcioné?

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *