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

PageIndexChanged

Estas en el tema de PageIndexChanged en el foro de .NET en Foros del Web. Hola, a ver si alguien puede solucionar-me una duda. En una aplicación asp.net, he inserido un DataGrid y he hecho insert, delete y update de ...
  #1 (permalink)  
Antiguo 22/04/2004, 08:32
 
Fecha de Ingreso: abril-2004
Ubicación: Barcelona
Mensajes: 36
Antigüedad: 20 años
Puntos: 0
PageIndexChanged

Hola,

a ver si alguien puede solucionar-me una duda.

En una aplicación asp.net, he inserido un DataGrid y he hecho insert, delete y update de la tabla. Ahora he probado de ordenar por columna (clickando en ellas), y me las ordena, lo que pasa es que también he puesto en el DataGrid, AllowPaging en true, entonces la función que se encarga de ello, PageIndexChanged el código que escrito es:
private void MyDataGrid_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEvent Args e){
MyDataGrid.CurrentPageIndex=e.NewPageIndex;
SqlDataAdapter myCommand = new SqlDataAdapter("select * from Stores", myConnection);
DataSet ds = new DataSet();
myCommand.Fill(ds, "Stores");
DataView Source=ds.Tables["Stores"].DefaultView;
Source.Sort="stor_id";
MyDataGrid.DataSource=Source;
MyDataGrid.DataBind();
}

y entonces lo que me haces es la paginación bien siempre que no diga de ordenar. Por ejemplo si quiero ordenar por dirección, se ordena alfabéticamente, peró cuando paso a la pagina dos, se ordena por la clave.

Cómo puedo hacer que para que no me pase eso?

merci
__________________
martoneta
  #2 (permalink)  
Antiguo 22/04/2004, 09:38
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Hola y bienvenido

En tu caso lo que haría es guardar el tipo de orden que hiciste por última vez en un viewstate... y despues cuando me cambie de página y llene mi grid... hago el filtro.

Ejemplo.

ViewState["Sort"] = "stor_id";
..
...

Cita:
private void MyDataGrid_PageIndexChanged(object source, System.Web.UI.WebControls.DataGridPageChangedEvent Args e){
MyDataGrid.CurrentPageIndex=e.NewPageIndex;
SqlDataAdapter myCommand = new SqlDataAdapter("select * from Stores", myConnection);
DataSet ds = new DataSet();
myCommand.Fill(ds, "Stores");
DataView Source=ds.Tables["Stores"].DefaultView;
Source.Sort = ViewState["Sort"].ToString());
MyDataGrid.DataSource=Source;
MyDataGrid.DataBind();
}
Saludos
__________________
Nadie roba nada ya que en la vida todo se paga . . .

Exentrit - Soluciones SharePoint & Net
  #3 (permalink)  
Antiguo 22/04/2004, 09:41
 
Fecha de Ingreso: abril-2004
Ubicación: Barcelona
Mensajes: 36
Antigüedad: 20 años
Puntos: 0
exactamente que es lo que haría esto?
__________________
martoneta
  #4 (permalink)  
Antiguo 22/04/2004, 09:45
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Cita:
exactamente que es lo que haría esto?
Pues te va a ordernar en base a lo que guardaste en tu
viewstate..
  #5 (permalink)  
Antiguo 22/04/2004, 09:53
 
Fecha de Ingreso: abril-2004
Ubicación: Barcelona
Mensajes: 36
Antigüedad: 20 años
Puntos: 0
perdona por la pregunta, pero es que no lo he entendido.

He probado lo que me has dicho, y me sale un error:

Referencia a objeto no establecida como instancia de un objeto.

Lo siento, es que estoy desesperada.
__________________
martoneta
  #6 (permalink)  
Antiguo 22/04/2004, 10:08
Avatar de RootK
Moderador
 
Fecha de Ingreso: febrero-2002
Ubicación: México D.F
Mensajes: 8.004
Antigüedad: 22 años, 2 meses
Puntos: 50
Cita:
private void Datagrid1_Sort(object source,DataGridSortCommandEventArgs e)
{
//Tu código normal...
//recoges el sort que hiciste...y lo guardas
ViewState ["Sort"] = "algun_campo";
/*.....
tu demás código donde haces el sort
.....
...

*/
}
Y ya en tu paginacion llamas ese viewstate para que ordene en base al que habías tu seleccionado.


Date de todas formas una vuelta por aqui para que sepas más acerca de la paginacion, ordenacion, etc..

http://msdn.microsoft.com/library/de...lesortable.asp

Saludos
  #7 (permalink)  
Antiguo 23/04/2004, 03:25
 
Fecha de Ingreso: abril-2004
Ubicación: Barcelona
Mensajes: 36
Antigüedad: 20 años
Puntos: 0
muchas gracias!!!
Me ha ido muy bien el link.

Otra cosita, la ordenación y paginación van bien, el problema es que cuando quiero editar el contenido de una fila, si escogo la última (ordenada por nombre), ésta se convierte en la última ordena por id, y no son la misma.

He de poner algo más?

Merci
__________________
martoneta
  #8 (permalink)  
Antiguo 23/04/2004, 05:23
 
Fecha de Ingreso: abril-2004
Ubicación: Barcelona
Mensajes: 36
Antigüedad: 20 años
Puntos: 0
Al final me ha salido!!!!
Muchas gracias!!
__________________
martoneta
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 12:09.