Foros del Web » Programación para mayores de 30 ;) » .NET »

Capturar la página del DataGrid recorrida

Estas en el tema de Capturar la página del DataGrid recorrida en el foro de .NET en Foros del Web. Hola a tod@s: En un sitio Web que estoy programando, tengo una página dónde muestro un listado de productos, a través de un DataGrid paginado. ...
  #1 (permalink)  
Antiguo 15/04/2007, 13:43
Avatar de zacktagnan  
Fecha de Ingreso: abril-2005
Mensajes: 501
Antigüedad: 19 años, 1 mes
Puntos: 3
Capturar la página del DataGrid recorrida

Hola a tod@s:

En un sitio Web que estoy programando, tengo una página dónde muestro un listado de productos, a través de un DataGrid paginado.

Cada fila dispone de un link para ir la página de detalle del producto elegido.

En la página de detalle, con el presumido conjunto de características del producto elegido, se dispone de un vínculo para volver al listado anterior.

Lo quiero conseguir es de primeras recoger que el número de página del DataGrid para pasarlo a través del vínculo que va a la página detalle, y así cuando se pulsará en el vínculo de [Volver] al listado anterior, se abriera este en la página dónde estaba antes de pulsar el vínculo de detalle.

Es decir, por ejemplo:

en el DataGrid,

...href="detalle.aspx?idprod=43&pagDataGrid=4"


en el vínculo de Volver al listado del DataGrid,

vlapagDataGrid = Request.QueryString["pagDataGrid"];
...href="listado.aspx?pagDataGrid=<%=vlapagDataGri d%>"
__________________
Saludos,

zacktagnan.
=================================================
  #2 (permalink)  
Antiguo 15/04/2007, 17:49
Avatar de zacktagnan  
Fecha de Ingreso: abril-2005
Mensajes: 501
Antigüedad: 19 años, 1 mes
Puntos: 3
Re: Capturar la página del DataGrid recorrida

Pues, ya lo he resuelto. Bueno, eso parece...

Así es como lo he solucionado.

En el archivo del DataGrid, en el vínculo para ir la página de detalle, en la parte de código, a través del método pagina_recorrida(), se recoge el número de página recorrida en el DataGrid. Número que se pasa como parámetro QueryString en el href del vínculo mencionado:

Código:
	protected string pagina_recorrida()
	{
		string la_pag_DG = (lista_DataGrid.CurrentPageIndex).ToString();
		return la_pag_DG;
	}
en el HTML
Código:
	<a href="detalle.aspx?idprod=<%# DataBinder.Eval(Container.DataItem, "prod_id")%>&pag_lista=<%# pagina_recorrida() %>"

En la página de detalle, para el vínculo de [Volver] al listado del DataGrid, se pasa de nuevo el valor que llegó como QueryString de la misma manera:

Código:
Response.Redirect("listaProductos.aspx?pag_lista=" + Request.QueryString["pag_lista"]);
Entonces, en la página del listado a través del DataGrid, para los casos en los que se quiera cargar un número de página concreto, se hace lo siguiente en el PageLoad de la parte de código:
Código:
protected string vpag_DG;

private void Page_Load(object sender, System.EventArgs e)
{
	...

	if (!Page.IsPostBack) 
	{
		if(Request.QueryString["pag_lista"] != null)
		{
			vpag_DG = Request.QueryString["pag_lista"];
			//POSICIONANDO EL DataGrid EN UNA PÁGINA DETERMINADA
			listPelis_DG.CurrentPageIndex = int.Parse(vpag_DG);
		}
		//para cargar el DataGrid
		actualizar_Listado();//llamada solo la primera vez
	}
Y ya está. Para todo el que le pueda interesar...
__________________
Saludos,

zacktagnan.
=================================================
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:16.