En este post me gustaría mostrarles que, además de en la url (lease querystrings), hay otra forma de pasar datos entre páginas asp.
Lo bueno que tiene esta otra forma, que por cierto solo funciona con ASP Net 2.0, es que en la url no va a mostrar ninguna información sobre los datos con los que queremos trabajar, esto se consigue usando Cross Page Postback.
Para trabajar con el ejemplo necesitaremos dos páginas, la origen (Default.aspx) y la de destino (Default2.aspx), la primera será la encargada de enviar los datos y la segunda de recorgerlos y mostrarlos.
Para ver el ejemplo completo aquí están las dos páginas
2. Destino
Si se fijan, en la página de destino, en la url no aparece ningún tipo de querystring.
Cómo se hace:
1. En la página de origen lo único que hay que hacer es asignar la propiedad PostBackURL al botón encargado de lanzar la segunda página para que apunte a esta última.
2. En la página destino hay que hacer dos cosas:
2.1 Añadir la directiva @PreviousPageType apuntando a la página desde la que se ha llamado a la de destino.
2.2 En el evento load de esta segunda página ahora podremos insertar el código necesario para capturar los valores de la página de origen.
Bueno, espero que lo hayan pillado, ya saben para cualquier cuestión al respecto no duden en agregar comentarios.
YA HICE TODO OKAY PERO ME TIRA UN ERROR
EN EL NOMBRE,profesion DE TU CODIGO DEL FORMULARIO
FindControl(«nombre»), TextBox)……..
supuestamente a q hace referencia eso???
pero si yo quiero hacer con solo codigo
como se haria?????????»
Este blog ha sido movido a http://netcodigo.webinfo.es
Hola,
tengo dos variables en mi pagina, las cuales tienen valores obtenidos de dos label.text, las cuales deseo pasar por la URL a otro formulario.
si alguien me puede decir como hacerlo lo agradecere bastante
Daniel
Hola!
No puedo ver las fotografías del código …
Saludos
Como puedo hacer esto con C#.
pinches fotos
siiii pinches fotos
Solo dale doble click a la imagen y ves todo el codigo….
No se deja ver el Pinche Codigo
Yo hice todo lo que dijiste y el error que me sale es el siguiente: «Referencia a objeto no establecida como instancia de un objeto.»
Hola.. me sale el mismo error que Victor…
Hice todo tal cual estaba akí…
ishoka@gmail.com
Saludos
yo hice todo lo que dijiste y no me da, pero no sale ningun error en vez de los datos sale sale algo que puese en la excepcion
Hola, para el colega que le interese, pasenmé su correo que le digo como ir del origen al destino, porque estoy haciendo lo mismo, aunque no puedo retroceder.
si le interesa, pasenmeló.
saludos
carlos7020@gmail.com
Hola que tal logre probar este ejemplo sin problemas, me gustaria saber como llevo la informacion de la pagina Default2.aspx a una Default3.aspx gracias
Logre realizar tu ejemplo sin problema alguno, sin embargo es importante mencionar (para algunos) que «nombre» y «profesion» son los texbox del primer formulario a los cuales se les hace referencia para cargar los datos.
Igualmente deberian tambien probar las variables de sesion y aplicacion, son mas sencillas de usar.
Carlos, para llevar la informacion de las variables debes seguir los mismos pasos y colocar un button en la pagina, igual te recomiendo uses las variables de sesion o aplicacion q son mas convenientes para usar cuando pasas informacion entre 3 o mas paginas.
muy bueno interesante
Existe otro metodo, solo que creando una clase adicional, por ejemplo: datos de una persona codigo, nombre, semestre, curso, nota01, nota02 y nota03, el promedio es calculado en la clase creada. Lo que sigues es crear un form01 conteniendo todos los detalles que menciono, ahora enviar a otra pagina con el promedio calculado y con todos los datelles enviados
esto va en el load del form 02
Dim Persona As New Class1
ClaseDefaul6 = Session(«Class_Default6»)
TextBox1.Text = ClaseDefaul6.acodigo
TextBox2.Text = ClaseDefaul6.anombre
TextBox3.Text = ClaseDefaul6.acurso
TextBox4.Text = ClaseDefaul6.asemestre
TextBox5.Text = ClaseDefaul6.anota01
TextBox6.Text = ClaseDefaul6.anota02
TextBox7.Text = ClaseDefaul6.anota03
TextBox8.Text = ClaseDefaul6.apromedio
Harlen, efectivamente tienes razón en tu comentario. Solo una salvedad, las variables de session consumen recursos del servidor, con lo que hay que tener cuidado en su uso.
Aprovecho para deciros que este blog se ha movido a http://netcodigo.webinfo.es
Saludos
el codigo esta perfecto lo unico MALO es que solo funcione para una pagina asp no sale para mas paginas asp
Excelente lo consegui, aqui dejo un codigo para pasar informacion de una celda (grid) a otra pagina:
Protected Sub GridView2_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles GridView2.SelectedIndexChanged
With GridView2.SelectedRow
Txtcod.Text = .Cells(0).Text //crear el txtcod y txtnom
TxtNom.Text = .Cells(1).Text
Dim obj1 As String = Txtcod.Text
Dim obj2 As String = TxtNom.Text
Session(«obj1») = obj1
Session(«obj2») = obj2
Server.Transfer(«pag02.aspx»)
End With
End Sub
pagina 2 evento page load
If (Page.IsPostBack = True) Then Exit Sub
cad = Session(«obj1»)
cad2 = Session(«obj2»)
TextBox1.Text = cad2
GridView2.DataSource = objM.M_LISTA_MEDICOS(cad)
GridView2.DataBind()
las informacion del la primera pagina no la puedo ver en la segunda pagina.
gracias
Gracias por la ayuda me sirvio de mucho
Hola !! necesito pasar valores entre pagina aspx y hasta ahora me funciona muy bien pasar los valores de Default1.aspx a Default2.aspx, pero me es imposible pasar la informacion de default2.aspx a Defaul3.aspx , por favor si alguien tien una idea que la comparta conmigo.Estoy utilizando c#.
Gracias !!
Pagina ASP.NET
Lenguaje: C#
Mi pagina destino es : ResultadoBusqueda.aspx
Mi pagina de origen es : Busqueda.aspx
//En la pagina de destino escribo lo siguiente:
//En la pagina de Origen C# : Busqueda.aspx.cs
public partial class Busqueda : System.Web.UI.Page
{
public String CodigoBusq //Propiedad Publica
{
get
{
return txtCodLibro.Text;
}
}
}
//En la pagina de Destino : ResultadoBusqueda.aspx.cs
protected void Page_Load(object sender, EventArgs e)
{
if (PreviousPage != null)
{
if (txtCod.Text != null)
{
txtCod.Text = PreviousPage.CodigoBusq.ToString();
}
}
}
Si tienen alguna duda me envian un mail con asunto : C# – Ayuda, mi correo es: jesusqs14@gmail.com
lo haces con pag. de distinto nombre y no anda. pt d mierda !
Muuuchas gracias, estuve toda la tarde buscando esto. Gracias de nuevo 🙂
Ola…unos post arriba le respondi a SolyLuna. Quizas te ayude=). Exitos
Para los que tienen problema con la imagen que no se puede ver aki les dejo el link:
Mi brow eres un genio me acabas de salvar, suerte, el codigo de JGC mas el tuyo es todo para funcionar. por si explico mas lento:
Mi caso es que quiero imprimir un reporte por medio de un boton que pase un numero de matricula a la otra pagina, para ello tengo que pasar el numero de matricula y recibirlo en una caja de texto (Textbox1).
1. vamos a las propiedades del boton que lanzara a la otra pagina y buscamos la propierad postbackurl y le ponermos clic en la pagina de destino(mi pagina A se llama matriculacion.aspx)
2. en la pagina de destino colocamos en el disenador web (no el de vb) (donde matriculacion.aspx en mi pagina anterior)
3. programas en el boton esto
Dim obj1 As String = TextBox13.Text ‘textbox13 es el text donde esta el numero de matricula
Session(«obj1») = obj1
Server.Transfer(«rptMatricula.aspx»)
Response.Redirect(«rptMatricula.aspx»)
4. programas en el pageload del destino esto:(rptMatricula.aspx)
Dim cad1 As Integer
If (Page.IsPostBack = True) Then Exit Sub
cad1 = Session(«obj1»)
TextBox1.Text = cad1
Espero sirva en algo a mi me funciono de pelos
Perdon en la ultima parte me olvide de que en el paso 2 en la pagina de destino, colocan esto en el disenador de la pagina (no de vb)
donde matriculacion.aspx en mi pagina anterior
Alli si coge todo
Quiero hacer un aporte, yo estaba haciendo todo correctamente pero no me funcionaba, y luego cai en cuenta que era porque estaba utilizando un Response.Redirect(«Default2.aspx»); No se porque, pero eso causaba que se perdiera como la referencia de la pagina de origen, y siempre PreviousPage era null.